/* * ome.xml.model.enums.handlers.PulseHandler * *----------------------------------------------------------------------------- * * Copyright (C) 2005-@year@ Open Microscopy Environment * Massachusetts Institute of Technology, * National Institutes of Health, * University of Dundee, * University of Wisconsin-Madison * * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *----------------------------------------------------------------------------- */ /*----------------------------------------------------------------------------- * * THIS IS AUTOMATICALLY GENERATED CODE. DO NOT MODIFY. * Created by melissa via xsd-fu on 2011-06-09 09:57:22.419418 * *----------------------------------------------------------------------------- */ package ome.xml.model.enums.handlers; import java.util.Hashtable; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ome.xml.model.enums.Enumeration; import ome.xml.model.enums.EnumerationException; import ome.xml.model.enums.Pulse; /** * Enumeration handler for Pulse. * * <dl><dt><b>Source code:</b></dt> * <dd><a href="http://trac.openmicroscopy.org.uk/ome/browser/bioformats.git/components/bio-formats/src/loci/formats/enums/handler/PulseHandler.java">Trac</a>, * <a href="http://git.openmicroscopy.org/?p=bioformats.git;a=blob;f=components/bio-formats/src/loci/formats/enums/handler/PulseHandler.java;hb=HEAD">Gitweb</a></dd></dl> */ public class PulseEnumHandler implements IEnumerationHandler { // -- Constants -- /** Logger for this class. */ private static final Logger LOGGER = LoggerFactory.getLogger(PulseEnumHandler.class); // -- Fields -- /** Every Pulse value must match one of these patterns. */ private static final Hashtable<String, String> patterns = makePatterns(); private static Hashtable<String, String> makePatterns() { Hashtable<String, String> p = new Hashtable<String, String>(); // BEGIN Schema enumeration mappings p.put("^\\s*CW\\s*", "CW"); p.put("^\\s*Single\\s*", "Single"); p.put("^\\s*QSwitched\\s*", "QSwitched"); p.put("^\\s*Repetitive\\s*", "Repetitive"); p.put("^\\s*ModeLocked\\s*", "ModeLocked"); p.put("^\\s*Other\\s*", "Other"); return p; } // -- IEnumerationHandler API methods -- /* @see IEnumerationHandler#getEnumeration(String) */ public Enumeration getEnumeration(String value) throws EnumerationException { if (value != null) { for (String pattern : patterns.keySet()) { if (value.toLowerCase().matches(pattern.toLowerCase())) { String v = patterns.get(pattern); return Pulse.fromString(v); } } } LOGGER.warn("Unknown {} value '{}' will be stored as \"Other\"", "Pulse", value); return Pulse.OTHER; } /* @see IEnumerationHandler#getEntity() */ public Class<? extends Enumeration> getEntity() { return Pulse.class; } }