/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.metamodels.relational.impl;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.teiid.designer.metamodels.relational.AccessPattern;
import org.teiid.designer.metamodels.relational.BaseTable;
import org.teiid.designer.metamodels.relational.Catalog;
import org.teiid.designer.metamodels.relational.Column;
import org.teiid.designer.metamodels.relational.DirectionKind;
import org.teiid.designer.metamodels.relational.ForeignKey;
import org.teiid.designer.metamodels.relational.Index;
import org.teiid.designer.metamodels.relational.LogicalRelationship;
import org.teiid.designer.metamodels.relational.LogicalRelationshipEnd;
import org.teiid.designer.metamodels.relational.MultiplicityKind;
import org.teiid.designer.metamodels.relational.NullableType;
import org.teiid.designer.metamodels.relational.PrimaryKey;
import org.teiid.designer.metamodels.relational.Procedure;
import org.teiid.designer.metamodels.relational.ProcedureParameter;
import org.teiid.designer.metamodels.relational.ProcedureResult;
import org.teiid.designer.metamodels.relational.ProcedureUpdateCount;
import org.teiid.designer.metamodels.relational.RelationalFactory;
import org.teiid.designer.metamodels.relational.RelationalPackage;
import org.teiid.designer.metamodels.relational.Schema;
import org.teiid.designer.metamodels.relational.SearchabilityType;
import org.teiid.designer.metamodels.relational.UniqueConstraint;
import org.teiid.designer.metamodels.relational.View;
/**
* <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
*
* @generated
*
* @since 8.0
*/
public class RelationalFactoryImpl extends EFactoryImpl implements RelationalFactory {
/**
* Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public RelationalFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EObject create( EClass eClass ) {
switch (eClass.getClassifierID()) {
case RelationalPackage.COLUMN:
return createColumn();
case RelationalPackage.SCHEMA:
return createSchema();
case RelationalPackage.PRIMARY_KEY:
return createPrimaryKey();
case RelationalPackage.FOREIGN_KEY:
return createForeignKey();
case RelationalPackage.VIEW:
return createView();
case RelationalPackage.CATALOG:
return createCatalog();
case RelationalPackage.PROCEDURE:
return createProcedure();
case RelationalPackage.INDEX:
return createIndex();
case RelationalPackage.PROCEDURE_PARAMETER:
return createProcedureParameter();
case RelationalPackage.UNIQUE_CONSTRAINT:
return createUniqueConstraint();
case RelationalPackage.ACCESS_PATTERN:
return createAccessPattern();
case RelationalPackage.LOGICAL_RELATIONSHIP:
return createLogicalRelationship();
case RelationalPackage.LOGICAL_RELATIONSHIP_END:
return createLogicalRelationshipEnd();
case RelationalPackage.BASE_TABLE:
return createBaseTable();
case RelationalPackage.PROCEDURE_RESULT:
return createProcedureResult();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Object createFromString( EDataType eDataType,
String initialValue ) {
switch (eDataType.getClassifierID()) {
case RelationalPackage.NULLABLE_TYPE: {
NullableType result = NullableType.get(initialValue);
if (result == null) throw new IllegalArgumentException(
"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
case RelationalPackage.DIRECTION_KIND: {
DirectionKind result = DirectionKind.get(initialValue);
if (result == null) throw new IllegalArgumentException(
"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
case RelationalPackage.MULTIPLICITY_KIND: {
MultiplicityKind result = MultiplicityKind.get(initialValue);
if (result == null) throw new IllegalArgumentException(
"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
case RelationalPackage.SEARCHABILITY_TYPE: {
SearchabilityType result = SearchabilityType.get(initialValue);
if (result == null) throw new IllegalArgumentException(
"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
case RelationalPackage.PROCEDURE_UPDATE_COUNT: {
ProcedureUpdateCount result = ProcedureUpdateCount.get(initialValue);
if (result == null) throw new IllegalArgumentException(
"The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public String convertToString( EDataType eDataType,
Object instanceValue ) {
switch (eDataType.getClassifierID()) {
case RelationalPackage.NULLABLE_TYPE:
return instanceValue == null ? null : instanceValue.toString();
case RelationalPackage.DIRECTION_KIND:
return instanceValue == null ? null : instanceValue.toString();
case RelationalPackage.MULTIPLICITY_KIND:
return instanceValue == null ? null : instanceValue.toString();
case RelationalPackage.SEARCHABILITY_TYPE:
return instanceValue == null ? null : instanceValue.toString();
case RelationalPackage.PROCEDURE_UPDATE_COUNT:
return instanceValue == null ? null : instanceValue.toString();
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Column createColumn() {
ColumnImpl column = new ColumnImpl();
return column;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Schema createSchema() {
SchemaImpl schema = new SchemaImpl();
return schema;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public PrimaryKey createPrimaryKey() {
PrimaryKeyImpl primaryKey = new PrimaryKeyImpl();
return primaryKey;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ForeignKey createForeignKey() {
ForeignKeyImpl foreignKey = new ForeignKeyImpl();
return foreignKey;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public View createView() {
ViewImpl view = new ViewImpl();
return view;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Catalog createCatalog() {
CatalogImpl catalog = new CatalogImpl();
return catalog;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Procedure createProcedure() {
ProcedureImpl procedure = new ProcedureImpl();
return procedure;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Index createIndex() {
IndexImpl index = new IndexImpl();
return index;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ProcedureParameter createProcedureParameter() {
ProcedureParameterImpl procedureParameter = new ProcedureParameterImpl();
return procedureParameter;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public UniqueConstraint createUniqueConstraint() {
UniqueConstraintImpl uniqueConstraint = new UniqueConstraintImpl();
return uniqueConstraint;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public AccessPattern createAccessPattern() {
AccessPatternImpl accessPattern = new AccessPatternImpl();
return accessPattern;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public LogicalRelationship createLogicalRelationship() {
LogicalRelationshipImpl logicalRelationship = new LogicalRelationshipImpl();
return logicalRelationship;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public LogicalRelationshipEnd createLogicalRelationshipEnd() {
LogicalRelationshipEndImpl logicalRelationshipEnd = new LogicalRelationshipEndImpl();
return logicalRelationshipEnd;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public BaseTable createBaseTable() {
BaseTableImpl baseTable = new BaseTableImpl();
return baseTable;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public ProcedureResult createProcedureResult() {
ProcedureResultImpl procedureResult = new ProcedureResultImpl();
return procedureResult;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public RelationalPackage getRelationalPackage() {
return (RelationalPackage)getEPackage();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @deprecated
* @generated
*/
@Deprecated
public static RelationalPackage getPackage() {
return RelationalPackage.eINSTANCE;
}
} // RelationalFactoryImpl