Package pt.webdetails.cdf.dd.model.meta.reader.cdexml.fs

Source Code of pt.webdetails.cdf.dd.model.meta.reader.cdexml.fs.XmlFsPluginThingReaderFactory

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

package pt.webdetails.cdf.dd.model.meta.reader.cdexml.fs;

import java.util.HashMap;
import java.util.Map;
import pt.webdetails.cdf.dd.model.meta.*;
import pt.webdetails.cdf.dd.model.meta.reader.cdexml.XmlAdhocComponentTypeReader;
import pt.webdetails.cdf.dd.model.meta.reader.cdexml.XmlPropertyTypeReader;
import pt.webdetails.cpf.repository.api.IContentAccessFactory;

/**
* Factory for XmlFsPluginModelReader, XmlPropertyTypeReader and ComponentType readers. (and DashboardType?)
* @author dcleao
*/
public class XmlFsPluginThingReaderFactory
{
  private Map<String, XmlAdhocComponentTypeReader<? extends ComponentType.Builder>> _metaReadersByClassName;
 
  private IContentAccessFactory contentAccessFactory;
 
  public XmlFsPluginThingReaderFactory(IContentAccessFactory factory)
  {
    contentAccessFactory = factory;
    this._metaReadersByClassName = new HashMap<String, XmlAdhocComponentTypeReader<? extends ComponentType.Builder>>();
   
    this.register(PrimitiveComponentType.class, PrimitiveComponentType.Builder.class);
    this.register(CustomComponentType.class,    CustomComponentType.Builder.class);
    this.register(WidgetComponentType.class,    WidgetComponentType.Builder.class);

//    //XXX this is only called for ComponentType; is DashboardType a ComponentType? should use thingyKind.DashboardType...
//    this.register(DashboardType.class,          DashboardType.Builder.class);

    this.register(CodeComponentType.class,      CodeComponentType.Builder.class);
    this.register(ParameterComponentType.class, ParameterComponentType.Builder.class);
    this.register(DataSourceComponentType.class, DataSourceComponentType.Builder.class);
  }
 
  private <TR extends MetaObject, TB extends ComponentType.Builder>
          void register(Class<TR> klass, Class<TB> readerClass)
  {
    this._metaReadersByClassName.put(
            klass.getSimpleName(),
            new XmlAdhocComponentTypeReader<TB>(readerClass, this));
  }
 
  public XmlFsPluginModelReader getMetaModelReader() {
    return new XmlFsPluginModelReader(contentAccessFactory, false);
  }
  public XmlPropertyTypeReader getPropertyTypeReader() {
    return new XmlPropertyTypeReader();
  }

  //TODO: use new iface
  public XmlAdhocComponentTypeReader<? extends ComponentType.Builder> getComponentTypeReader (String className) {
    return this._metaReadersByClassName.get(className);
  }

}
TOP

Related Classes of pt.webdetails.cdf.dd.model.meta.reader.cdexml.fs.XmlFsPluginThingReaderFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.