// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.cwm.helper; import org.talend.core.model.metadata.builder.connection.Connection; import org.talend.core.model.metadata.builder.connection.DatabaseConnection; import org.talend.core.model.metadata.builder.connection.DelimitedFileConnection; import org.talend.core.model.metadata.builder.connection.MDMConnection; import org.talend.core.model.metadata.builder.connection.MetadataColumn; import org.talend.core.model.metadata.builder.connection.MetadataTable; import org.talend.core.model.metadata.builder.connection.util.ConnectionSwitch; import org.talend.cwm.relational.TdColumn; import org.talend.cwm.relational.TdTable; import org.talend.cwm.relational.TdView; import org.talend.cwm.relational.util.RelationalSwitch; import org.talend.cwm.softwaredeployment.TdSoftwareSystem; import org.talend.cwm.softwaredeployment.util.SoftwaredeploymentSwitch; import org.talend.cwm.xml.TdXmlElementType; import org.talend.cwm.xml.TdXmlSchema; import org.talend.cwm.xml.util.XmlSwitch; import orgomg.cwm.foundation.softwaredeployment.Component; import orgomg.cwm.objectmodel.core.Package; import orgomg.cwm.resource.relational.Catalog; import orgomg.cwm.resource.relational.ColumnSet; import orgomg.cwm.resource.relational.ForeignKey; import orgomg.cwm.resource.relational.NamedColumnSet; import orgomg.cwm.resource.relational.PrimaryKey; import orgomg.cwm.resource.relational.Schema; /** * @author scorreia * * This class gives easy access to the correctly typed elements. */ public final class SwitchHelpers { private SwitchHelpers() { } public static final orgomg.cwm.resource.relational.util.RelationalSwitch<Package> PACKAGE_SWITCH = new orgomg.cwm.resource.relational.util.RelationalSwitch<Package>() { @Override public Package casePackage(Package object) { return object; } }; public static final orgomg.cwm.resource.relational.util.RelationalSwitch<PrimaryKey> PRIMARY_KEY_SWITCH = new orgomg.cwm.resource.relational.util.RelationalSwitch<PrimaryKey>() { /* * (non-Javadoc) * * @see * orgomg.cwm.resource.relational.util.RelationalSwitch#casePrimaryKey(orgomg.cwm.resource.relational.PrimaryKey * ) */ @Override public PrimaryKey casePrimaryKey(PrimaryKey object) { return object; } }; public static final orgomg.cwm.resource.relational.util.RelationalSwitch<ForeignKey> FOREIGN_KEY_SWITCH = new orgomg.cwm.resource.relational.util.RelationalSwitch<ForeignKey>() { /* * (non-Javadoc) * * @see * orgomg.cwm.resource.relational.util.RelationalSwitch#caseForeignKey(orgomg.cwm.resource.relational.ForeignKey * ) */ @Override public ForeignKey caseForeignKey(ForeignKey object) { return object; } }; public static final orgomg.cwm.resource.relational.util.RelationalSwitch<Catalog> CATALOG_SWITCH = new orgomg.cwm.resource.relational.util.RelationalSwitch<Catalog>() { @Override public Catalog caseCatalog(Catalog object) { return object; } }; public static final orgomg.cwm.resource.relational.util.RelationalSwitch<Schema> SCHEMA_SWITCH = new orgomg.cwm.resource.relational.util.RelationalSwitch<Schema>() { @Override public Schema caseSchema(Schema object) { return object; } }; public static final XmlSwitch<TdXmlSchema> XMLSCHEMA_SWITCH = new XmlSwitch<TdXmlSchema>() { @Override public TdXmlSchema caseTdXmlSchema(TdXmlSchema object) { return object; } }; public static final XmlSwitch<TdXmlElementType> XMLELEMENTTYPE_SWITCH = new XmlSwitch<TdXmlElementType>() { @Override public TdXmlElementType caseTdXmlElementType(TdXmlElementType object) { return object; } }; public static final RelationalSwitch<TdTable> TABLE_SWITCH = new RelationalSwitch<TdTable>() { @Override public TdTable caseTdTable(TdTable object) { return object; } }; public static final RelationalSwitch<TdView> VIEW_SWITCH = new RelationalSwitch<TdView>() { @Override public TdView caseTdView(TdView object) { return object; } }; public static final RelationalSwitch<TdColumn> COLUMN_SWITCH = new RelationalSwitch<TdColumn>() { @Override public TdColumn caseTdColumn(TdColumn object) { return object; } }; public static final RelationalSwitch<ColumnSet> COLUMN_SET_SWITCH = new RelationalSwitch<ColumnSet>() { @Override public ColumnSet caseColumnSet(ColumnSet object) { return object; } }; public static final RelationalSwitch<NamedColumnSet> NAMED_COLUMN_SET_SWITCH = new RelationalSwitch<NamedColumnSet>() { @Override public NamedColumnSet caseNamedColumnSet(NamedColumnSet object) { return object; } }; public static final SoftwaredeploymentSwitch<TdSoftwareSystem> TDSOFTWARE_SYSTEM_SWITCH = new SoftwaredeploymentSwitch<TdSoftwareSystem>() { /* * (non-Javadoc) * * @seeorg.talend.cwm.softwaredeployment.util.SoftwaredeploymentSwitch#caseTdSoftwareSystem(org.talend.cwm. * softwaredeployment.TdSoftwareSystem) */ @Override public TdSoftwareSystem caseTdSoftwareSystem(TdSoftwareSystem object) { return object; } }; public static final orgomg.cwm.foundation.softwaredeployment.util.SoftwaredeploymentSwitch<Component> COMPONENT_SWITCH = new orgomg.cwm.foundation.softwaredeployment.util.SoftwaredeploymentSwitch<Component>() { /* * (non-Javadoc) * * @see * orgomg.cwm.foundation.softwaredeployment.util.SoftwaredeploymentSwitch#caseComponent(orgomg.cwm.foundation * .softwaredeployment.Component) */ @Override public Component caseComponent(Component object) { return object; } }; public static final ConnectionSwitch<MetadataTable> METADATA_TABLE_SWITCH = new ConnectionSwitch<MetadataTable>() { /* * (non-Javadoc) * * @see * org.talend.core.model.metadata.builder.connection.util.ConnectionSwitch#caseMetadataTable(org.talend.core * .model.metadata.builder.connection.MetadataTable) */ @Override public MetadataTable caseMetadataTable(MetadataTable object) { return object; } }; public static final ConnectionSwitch<Connection> CONNECTION_SWITCH = new ConnectionSwitch<Connection>() { public Connection caseConnection(Connection object) { return object; } public Connection caseDatabaseConnection(DatabaseConnection object) { return object; }; public Connection caseMDMConnection(MDMConnection object) { return object; }; }; public static final ConnectionSwitch<DatabaseConnection> DATABASECONNECTION_SWITCH = new ConnectionSwitch<DatabaseConnection>() { @Override public DatabaseConnection caseDatabaseConnection(DatabaseConnection object) { return object; } }; public static final ConnectionSwitch<MDMConnection> MDMCONNECTION_SWITCH = new ConnectionSwitch<MDMConnection>() { @Override public MDMConnection caseMDMConnection(MDMConnection object) { return object; } }; public static final ConnectionSwitch<MetadataColumn> METADATA_COLUMN_SWITCH = new ConnectionSwitch<MetadataColumn>() { @Override public MetadataColumn caseMetadataColumn(MetadataColumn object) { return object; } }; public static final ConnectionSwitch<DelimitedFileConnection> DELIMITEDFILECONNECTION_SWITCH = new ConnectionSwitch<DelimitedFileConnection>() { @Override public DelimitedFileConnection caseDelimitedFileConnection(DelimitedFileConnection object) { return object; } }; }