📄 parameterfactoryregistry.java
字号:
/** * Copyright (c) 2009, Ben Fortuna * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * o Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * o Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * o Neither the name of Ben Fortuna nor the names of any other contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package net.fortuna.ical4j.vcard;import java.util.HashMap;import java.util.Locale;import java.util.Map;import net.fortuna.ical4j.vcard.Parameter.Id;import net.fortuna.ical4j.vcard.parameter.Encoding;import net.fortuna.ical4j.vcard.parameter.Language;import net.fortuna.ical4j.vcard.parameter.Pid;import net.fortuna.ical4j.vcard.parameter.Pref;import net.fortuna.ical4j.vcard.parameter.Type;import net.fortuna.ical4j.vcard.parameter.Value;/** * $Id: ParameterFactoryRegistry.java,v 1.3 2009/01/12 03:49:22 fortuna Exp $ * * Created on: 05/01/2009 * * @author Ben * */public class ParameterFactoryRegistry { private Map<Id, ParameterFactory<? extends Parameter>> defaultFactories; public ParameterFactoryRegistry() { defaultFactories = new HashMap<Id, ParameterFactory<? extends Parameter>>(); defaultFactories.put(Parameter.Id.ENCODING, new ParameterFactory<Encoding>() { @Override public Encoding createParameter(final String value) { if (Encoding.B.getValue().equals(value)) { return Encoding.B; } return new Encoding(value); } }); defaultFactories.put(Parameter.Id.LANGUAGE, new ParameterFactory<Language>() { @Override public Language createParameter(final String value) { return new Language(new Locale(value)); } }); defaultFactories.put(Parameter.Id.PID, new ParameterFactory<Pid>() { @Override public Pid createParameter(final String value) { return new Pid(Integer.valueOf(value)); } }); defaultFactories.put(Parameter.Id.TYPE, new ParameterFactory<Type>() { @Override public Type createParameter(final String value) { if (Type.HOME.getValue().equals(value)) { return Type.HOME; } else if (Type.PREF.getValue().equals(value)) { return Type.PREF; } else if (Type.WORK.getValue().equals(value)) { return Type.WORK; } return new Type(value); } }); defaultFactories.put(Parameter.Id.VALUE, new ParameterFactory<Value>() { @Override public Value createParameter(final String value) { if (Value.BINARY.getValue().equals(value)) { return Value.BINARY; } else if (Value.TEXT.getValue().equals(value)) { return Value.TEXT; } else if (Value.URI.getValue().equals(value)) { return Value.URI; } return new Value(value); } }); defaultFactories.put(Parameter.Id.PREF, new ParameterFactory<Pref>() { /* (non-Javadoc) * @see net.fortuna.ical4j.vcard.ParameterFactory#createParameter(java.lang.String) */ @Override public Pref createParameter(final String value) { return Pref.PREF; } }); } /** * @param value * @return */ public ParameterFactory<? extends Parameter> getFactory(final String value) { return defaultFactories.get(Id.valueOf(value)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -