/*******************************************************************************
* Copyright (c) 2009 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors;
import java.util.HashMap;
import java.util.Map;
import org.jboss.tools.smooks.configuration.editors.csv12.Csv12ReaderBindingPropertyUICreator;
import org.jboss.tools.smooks.configuration.editors.csv12.Csv12ReaderMapBindingPropertyUICreator;
import org.jboss.tools.smooks.configuration.editors.csv12.Csv12ReaderUICreator;
import org.jboss.tools.smooks.configuration.editors.edireader12.EDIReader12UICreator;
import org.jboss.tools.smooks.configuration.editors.freemarker.FreemarkerUICreator;
import org.jboss.tools.smooks.configuration.editors.freemarker.InlineUICreator;
import org.jboss.tools.smooks.configuration.editors.freemarker.UseUICreator;
import org.jboss.tools.smooks.configuration.editors.javabean12.JavaBean12PropertyUICreator;
import org.jboss.tools.smooks.configuration.editors.javabean12.Javabean12ExpressionUICreator;
import org.jboss.tools.smooks.configuration.editors.javabean12.JavabeanValueBinding12UICreator;
import org.jboss.tools.smooks.configuration.editors.javabean12.JavabeanWiringBiding12UICreator;
import org.jboss.tools.smooks.configuration.editors.json12.Json12ReaderUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ConditionTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ConditionsTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.FeaturesTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.HandlerTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.HandlersTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ImportTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ParamTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ParamsTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ProfileTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ProfilesTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ReaderTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ResourceConfigTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.ResourceTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.SetOffTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.SetOnTypeUICreator;
import org.jboss.tools.smooks.configuration.editors.smooks.SmooksResourceListTypeUICreator;
import org.jboss.tools.smooks.model.csv12.impl.BindingImpl;
import org.jboss.tools.smooks.model.csv12.impl.CSV12ReaderImpl;
import org.jboss.tools.smooks.model.csv12.impl.MapBindingImpl;
import org.jboss.tools.smooks.model.edi12.impl.EDI12ReaderImpl;
import org.jboss.tools.smooks.model.freemarker.impl.FreemarkerImpl;
import org.jboss.tools.smooks.model.freemarker.impl.InlineImpl;
import org.jboss.tools.smooks.model.freemarker.impl.UseImpl;
import org.jboss.tools.smooks.model.javabean12.impl.BeanTypeImpl;
import org.jboss.tools.smooks.model.json12.impl.Json12ReaderImpl;
import org.jboss.tools.smooks.model.smooks.impl.ConditionTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ConditionsTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.FeaturesTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.HandlerTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.HandlersTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ImportTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ParamTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ParamsTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ProfileTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ProfilesTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ReaderTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ResourceConfigTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.ResourceTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.SetOffTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.SetOnTypeImpl;
import org.jboss.tools.smooks.model.smooks.impl.SmooksResourceListTypeImpl;
/**
* @author Dart (dpeng@redhat.com)
* <p>
* Apr 7, 2009
*/
public class PropertyUICreatorManager {
private static PropertyUICreatorManager instance;
private Map<Class<?>, IPropertyUICreator> map = null;
private PropertyUICreatorManager() {
map = new HashMap<Class<?>, IPropertyUICreator>();
init();
}
private void init() {
/*
* below if for smooks1.1
*/
// for javabean
// map.put(BindingsTypeImpl.class, new BindingsPropertyUICreator());
// map.put(ValueTypeImpl.class, new JavabeanValueUICreator());
// map.put(WiringTypeImpl.class, new JavabeanWiringUICreator());
// map.put(ExpressionTypeImpl.class, new JavabeanExpressionUICreator());
// for smooks models
map.put(ConditionTypeImpl.class, new ConditionTypeUICreator());
map.put(ImportTypeImpl.class, new ImportTypeUICreator());
map.put(ParamTypeImpl.class, new ParamTypeUICreator());
map.put(ResourceConfigTypeImpl.class, new ResourceConfigTypeUICreator());
map.put(ResourceTypeImpl.class, new ResourceTypeUICreator());
map.put(ConditionsTypeImpl.class, new ConditionsTypeUICreator());
map.put(FeaturesTypeImpl.class, new FeaturesTypeUICreator());
map.put(HandlersTypeImpl.class, new HandlersTypeUICreator());
map.put(HandlerTypeImpl.class, new HandlerTypeUICreator());
map.put(ParamsTypeImpl.class, new ParamsTypeUICreator());
map.put(ProfilesTypeImpl.class, new ProfilesTypeUICreator());
map.put(ProfileTypeImpl.class, new ProfileTypeUICreator());
map.put(ReaderTypeImpl.class, new ReaderTypeUICreator());
map.put(SetOffTypeImpl.class, new SetOffTypeUICreator());
map.put(SetOnTypeImpl.class, new SetOnTypeUICreator());
map.put(SmooksResourceListTypeImpl.class, new SmooksResourceListTypeUICreator());
// for freemarker
map.put(org.jboss.tools.smooks.model.freemarker.impl.BindToImpl.class,
new org.jboss.tools.smooks.configuration.editors.freemarker.BindToUICreator());
map.put(FreemarkerImpl.class, new FreemarkerUICreator());
map.put(InlineImpl.class, new InlineUICreator());
map.put(org.jboss.tools.smooks.model.freemarker.impl.OutputToImpl.class,
new org.jboss.tools.smooks.configuration.editors.freemarker.OutputToUICreator());
map.put(org.jboss.tools.smooks.model.freemarker.impl.TemplateImpl.class,
new org.jboss.tools.smooks.configuration.editors.freemarker.TemplateUICreator());
map.put(UseImpl.class, new UseUICreator());
// for JSON 1.2
map.put(Json12ReaderImpl.class, new Json12ReaderUICreator());
/*
* up is for smooks1.1
*/
/*
* bottom is for smooks 1.2
*/
// for JavaBean v1.2
map.put(BeanTypeImpl.class, new JavaBean12PropertyUICreator());
map
.put(org.jboss.tools.smooks.model.javabean12.impl.ValueTypeImpl.class,
new JavabeanValueBinding12UICreator());
map.put(org.jboss.tools.smooks.model.javabean12.impl.ExpressionTypeImpl.class,
new Javabean12ExpressionUICreator());
map.put(org.jboss.tools.smooks.model.javabean12.impl.WiringTypeImpl.class,
new JavabeanWiringBiding12UICreator());
// for CSV Reader v1.2
map.put(BindingImpl.class, new Csv12ReaderBindingPropertyUICreator());
map.put(MapBindingImpl.class, new Csv12ReaderMapBindingPropertyUICreator());
map.put(CSV12ReaderImpl.class, new Csv12ReaderUICreator());
// for EDI Reader v1.2
map.put(EDI12ReaderImpl.class, new EDIReader12UICreator());
}
public void registePropertyUICreator(Class<?> key, IPropertyUICreator creator) {
map.put(key, creator);
}
public IPropertyUICreator getPropertyUICreator(Class<?> key) {
return map.get(key);
}
public IPropertyUICreator getPropertyUICreator(Object model) {
return map.get(model.getClass());
}
public static synchronized PropertyUICreatorManager getInstance() {
if (instance == null) {
instance = new PropertyUICreatorManager();
}
return instance;
}
}