/**
* Copyright (c) 2013 itemis AG and others.
* All rights reserved. This program and the accompanying materials
* are 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:
* Mark Broerkens - initial API and implementation
*
*/
package org.eclipse.rmf.reqif10.impl;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
import org.eclipse.rmf.reqif10.AlternativeID;
import org.eclipse.rmf.reqif10.AttributeDefinitionBoolean;
import org.eclipse.rmf.reqif10.AttributeDefinitionDate;
import org.eclipse.rmf.reqif10.AttributeDefinitionEnumeration;
import org.eclipse.rmf.reqif10.AttributeDefinitionInteger;
import org.eclipse.rmf.reqif10.AttributeDefinitionReal;
import org.eclipse.rmf.reqif10.AttributeDefinitionString;
import org.eclipse.rmf.reqif10.AttributeDefinitionXHTML;
import org.eclipse.rmf.reqif10.AttributeValueBoolean;
import org.eclipse.rmf.reqif10.AttributeValueDate;
import org.eclipse.rmf.reqif10.AttributeValueEnumeration;
import org.eclipse.rmf.reqif10.AttributeValueInteger;
import org.eclipse.rmf.reqif10.AttributeValueReal;
import org.eclipse.rmf.reqif10.AttributeValueString;
import org.eclipse.rmf.reqif10.AttributeValueXHTML;
import org.eclipse.rmf.reqif10.DatatypeDefinitionBoolean;
import org.eclipse.rmf.reqif10.DatatypeDefinitionDate;
import org.eclipse.rmf.reqif10.DatatypeDefinitionEnumeration;
import org.eclipse.rmf.reqif10.DatatypeDefinitionInteger;
import org.eclipse.rmf.reqif10.DatatypeDefinitionReal;
import org.eclipse.rmf.reqif10.DatatypeDefinitionString;
import org.eclipse.rmf.reqif10.DatatypeDefinitionXHTML;
import org.eclipse.rmf.reqif10.EmbeddedValue;
import org.eclipse.rmf.reqif10.EnumValue;
import org.eclipse.rmf.reqif10.RelationGroup;
import org.eclipse.rmf.reqif10.RelationGroupType;
import org.eclipse.rmf.reqif10.ReqIF;
import org.eclipse.rmf.reqif10.ReqIF10Factory;
import org.eclipse.rmf.reqif10.ReqIF10Package;
import org.eclipse.rmf.reqif10.ReqIFContent;
import org.eclipse.rmf.reqif10.ReqIFHeader;
import org.eclipse.rmf.reqif10.ReqIFToolExtension;
import org.eclipse.rmf.reqif10.SpecHierarchy;
import org.eclipse.rmf.reqif10.SpecObject;
import org.eclipse.rmf.reqif10.SpecObjectType;
import org.eclipse.rmf.reqif10.SpecRelation;
import org.eclipse.rmf.reqif10.SpecRelationType;
import org.eclipse.rmf.reqif10.Specification;
import org.eclipse.rmf.reqif10.SpecificationType;
import org.eclipse.rmf.reqif10.XhtmlContent;
/**
* <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
*
* @generated
*/
public class ReqIF10FactoryImpl extends EFactoryImpl implements ReqIF10Factory {
DatatypeFactory datatypeFactory;
/**
* Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public static ReqIF10Factory init() {
try {
ReqIF10Factory theReqIF10Factory = (ReqIF10Factory) EPackage.Registry.INSTANCE.getEFactory(ReqIF10Package.eNS_URI);
if (theReqIF10Factory != null) {
return theReqIF10Factory;
}
} catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new ReqIF10FactoryImpl();
}
/**
* Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public ReqIF10FactoryImpl() {
super();
try {
datatypeFactory = DatatypeFactory.newInstance();
} catch (DatatypeConfigurationException e) {
datatypeFactory = null;
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case ReqIF10Package.ATTRIBUTE_VALUE_XHTML:
return createAttributeValueXHTML();
case ReqIF10Package.ATTRIBUTE_DEFINITION_XHTML:
return createAttributeDefinitionXHTML();
case ReqIF10Package.REQ_IF_CONTENT:
return createReqIFContent();
case ReqIF10Package.REQ_IF:
return createReqIF();
case ReqIF10Package.REQ_IF_HEADER:
return createReqIFHeader();
case ReqIF10Package.REQ_IF_TOOL_EXTENSION:
return createReqIFToolExtension();
case ReqIF10Package.SPEC_OBJECT:
return createSpecObject();
case ReqIF10Package.SPEC_OBJECT_TYPE:
return createSpecObjectType();
case ReqIF10Package.SPECIFICATION:
return createSpecification();
case ReqIF10Package.SPECIFICATION_TYPE:
return createSpecificationType();
case ReqIF10Package.SPEC_HIERARCHY:
return createSpecHierarchy();
case ReqIF10Package.SPEC_RELATION:
return createSpecRelation();
case ReqIF10Package.SPEC_RELATION_TYPE:
return createSpecRelationType();
case ReqIF10Package.RELATION_GROUP:
return createRelationGroup();
case ReqIF10Package.RELATION_GROUP_TYPE:
return createRelationGroupType();
case ReqIF10Package.DATATYPE_DEFINITION_XHTML:
return createDatatypeDefinitionXHTML();
case ReqIF10Package.ALTERNATIVE_ID:
return createAlternativeID();
case ReqIF10Package.ATTRIBUTE_DEFINITION_BOOLEAN:
return createAttributeDefinitionBoolean();
case ReqIF10Package.DATATYPE_DEFINITION_BOOLEAN:
return createDatatypeDefinitionBoolean();
case ReqIF10Package.ATTRIBUTE_VALUE_BOOLEAN:
return createAttributeValueBoolean();
case ReqIF10Package.ATTRIBUTE_DEFINITION_DATE:
return createAttributeDefinitionDate();
case ReqIF10Package.DATATYPE_DEFINITION_DATE:
return createDatatypeDefinitionDate();
case ReqIF10Package.ATTRIBUTE_VALUE_DATE:
return createAttributeValueDate();
case ReqIF10Package.ATTRIBUTE_DEFINITION_ENUMERATION:
return createAttributeDefinitionEnumeration();
case ReqIF10Package.DATATYPE_DEFINITION_ENUMERATION:
return createDatatypeDefinitionEnumeration();
case ReqIF10Package.ENUM_VALUE:
return createEnumValue();
case ReqIF10Package.EMBEDDED_VALUE:
return createEmbeddedValue();
case ReqIF10Package.ATTRIBUTE_VALUE_ENUMERATION:
return createAttributeValueEnumeration();
case ReqIF10Package.ATTRIBUTE_DEFINITION_INTEGER:
return createAttributeDefinitionInteger();
case ReqIF10Package.DATATYPE_DEFINITION_INTEGER:
return createDatatypeDefinitionInteger();
case ReqIF10Package.ATTRIBUTE_VALUE_INTEGER:
return createAttributeValueInteger();
case ReqIF10Package.ATTRIBUTE_DEFINITION_REAL:
return createAttributeDefinitionReal();
case ReqIF10Package.DATATYPE_DEFINITION_REAL:
return createDatatypeDefinitionReal();
case ReqIF10Package.ATTRIBUTE_VALUE_REAL:
return createAttributeValueReal();
case ReqIF10Package.ATTRIBUTE_DEFINITION_STRING:
return createAttributeDefinitionString();
case ReqIF10Package.DATATYPE_DEFINITION_STRING:
return createDatatypeDefinitionString();
case ReqIF10Package.ATTRIBUTE_VALUE_STRING:
return createAttributeValueString();
case ReqIF10Package.XHTML_CONTENT:
return createXhtmlContent();
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 ReqIF10Package.DATE_TIME:
return createDateTimeFromString(eDataType, initialValue);
case ReqIF10Package.ID:
return createIDFromString(eDataType, initialValue);
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 ReqIF10Package.DATE_TIME:
return convertDateTimeToString(eDataType, instanceValue);
case ReqIF10Package.ID:
return convertIDToString(eDataType, instanceValue);
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
*/
public AttributeValueXHTML createAttributeValueXHTML() {
AttributeValueXHTMLImpl attributeValueXHTML = new AttributeValueXHTMLImpl();
return attributeValueXHTML;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionXHTML createAttributeDefinitionXHTML() {
AttributeDefinitionXHTMLImpl attributeDefinitionXHTML = new AttributeDefinitionXHTMLImpl();
return attributeDefinitionXHTML;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public ReqIFContent createReqIFContent() {
ReqIFContentImpl reqIFContent = new ReqIFContentImpl();
return reqIFContent;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public ReqIF createReqIF() {
ReqIFImpl reqIF = new ReqIFImpl();
return reqIF;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public ReqIFHeader createReqIFHeader() {
ReqIFHeaderImpl reqIFHeader = new ReqIFHeaderImpl();
return reqIFHeader;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public ReqIFToolExtension createReqIFToolExtension() {
ReqIFToolExtensionImpl reqIFToolExtension = new ReqIFToolExtensionImpl();
return reqIFToolExtension;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecObject createSpecObject() {
SpecObjectImpl specObject = new SpecObjectImpl();
return specObject;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecObjectType createSpecObjectType() {
SpecObjectTypeImpl specObjectType = new SpecObjectTypeImpl();
return specObjectType;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public Specification createSpecification() {
SpecificationImpl specification = new SpecificationImpl();
return specification;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecificationType createSpecificationType() {
SpecificationTypeImpl specificationType = new SpecificationTypeImpl();
return specificationType;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecHierarchy createSpecHierarchy() {
SpecHierarchyImpl specHierarchy = new SpecHierarchyImpl();
return specHierarchy;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecRelation createSpecRelation() {
SpecRelationImpl specRelation = new SpecRelationImpl();
return specRelation;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public SpecRelationType createSpecRelationType() {
SpecRelationTypeImpl specRelationType = new SpecRelationTypeImpl();
return specRelationType;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public RelationGroup createRelationGroup() {
RelationGroupImpl relationGroup = new RelationGroupImpl();
return relationGroup;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public RelationGroupType createRelationGroupType() {
RelationGroupTypeImpl relationGroupType = new RelationGroupTypeImpl();
return relationGroupType;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionXHTML createDatatypeDefinitionXHTML() {
DatatypeDefinitionXHTMLImpl datatypeDefinitionXHTML = new DatatypeDefinitionXHTMLImpl();
return datatypeDefinitionXHTML;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AlternativeID createAlternativeID() {
AlternativeIDImpl alternativeID = new AlternativeIDImpl();
return alternativeID;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionBoolean createAttributeDefinitionBoolean() {
AttributeDefinitionBooleanImpl attributeDefinitionBoolean = new AttributeDefinitionBooleanImpl();
return attributeDefinitionBoolean;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionBoolean createDatatypeDefinitionBoolean() {
DatatypeDefinitionBooleanImpl datatypeDefinitionBoolean = new DatatypeDefinitionBooleanImpl();
return datatypeDefinitionBoolean;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueBoolean createAttributeValueBoolean() {
AttributeValueBooleanImpl attributeValueBoolean = new AttributeValueBooleanImpl();
return attributeValueBoolean;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionDate createAttributeDefinitionDate() {
AttributeDefinitionDateImpl attributeDefinitionDate = new AttributeDefinitionDateImpl();
return attributeDefinitionDate;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionDate createDatatypeDefinitionDate() {
DatatypeDefinitionDateImpl datatypeDefinitionDate = new DatatypeDefinitionDateImpl();
return datatypeDefinitionDate;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueDate createAttributeValueDate() {
AttributeValueDateImpl attributeValueDate = new AttributeValueDateImpl();
return attributeValueDate;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionEnumeration createAttributeDefinitionEnumeration() {
AttributeDefinitionEnumerationImpl attributeDefinitionEnumeration = new AttributeDefinitionEnumerationImpl();
return attributeDefinitionEnumeration;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionEnumeration createDatatypeDefinitionEnumeration() {
DatatypeDefinitionEnumerationImpl datatypeDefinitionEnumeration = new DatatypeDefinitionEnumerationImpl();
return datatypeDefinitionEnumeration;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public EnumValue createEnumValue() {
EnumValueImpl enumValue = new EnumValueImpl();
return enumValue;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public EmbeddedValue createEmbeddedValue() {
EmbeddedValueImpl embeddedValue = new EmbeddedValueImpl();
return embeddedValue;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueEnumeration createAttributeValueEnumeration() {
AttributeValueEnumerationImpl attributeValueEnumeration = new AttributeValueEnumerationImpl();
return attributeValueEnumeration;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionInteger createAttributeDefinitionInteger() {
AttributeDefinitionIntegerImpl attributeDefinitionInteger = new AttributeDefinitionIntegerImpl();
return attributeDefinitionInteger;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionInteger createDatatypeDefinitionInteger() {
DatatypeDefinitionIntegerImpl datatypeDefinitionInteger = new DatatypeDefinitionIntegerImpl();
return datatypeDefinitionInteger;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueInteger createAttributeValueInteger() {
AttributeValueIntegerImpl attributeValueInteger = new AttributeValueIntegerImpl();
return attributeValueInteger;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionReal createAttributeDefinitionReal() {
AttributeDefinitionRealImpl attributeDefinitionReal = new AttributeDefinitionRealImpl();
return attributeDefinitionReal;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionReal createDatatypeDefinitionReal() {
DatatypeDefinitionRealImpl datatypeDefinitionReal = new DatatypeDefinitionRealImpl();
return datatypeDefinitionReal;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueReal createAttributeValueReal() {
AttributeValueRealImpl attributeValueReal = new AttributeValueRealImpl();
return attributeValueReal;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeDefinitionString createAttributeDefinitionString() {
AttributeDefinitionStringImpl attributeDefinitionString = new AttributeDefinitionStringImpl();
return attributeDefinitionString;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public DatatypeDefinitionString createDatatypeDefinitionString() {
DatatypeDefinitionStringImpl datatypeDefinitionString = new DatatypeDefinitionStringImpl();
return datatypeDefinitionString;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public AttributeValueString createAttributeValueString() {
AttributeValueStringImpl attributeValueString = new AttributeValueStringImpl();
return attributeValueString;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public XhtmlContent createXhtmlContent() {
XhtmlContentImpl xhtmlContent = new XhtmlContentImpl();
return xhtmlContent;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public GregorianCalendar createDateTimeFromString(EDataType eDataType, String initialValue) {
XMLGregorianCalendar xmlGregorianCalendar = XMLTypeFactory.eINSTANCE.createDateTime(initialValue);
return null == xmlGregorianCalendar ? null : xmlGregorianCalendar.toGregorianCalendar();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
*/
public String convertDateTimeToString(EDataType eDataType, Object instanceValue) {
if (null != datatypeFactory && null != instanceValue && instanceValue instanceof GregorianCalendar) {
XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar((GregorianCalendar) instanceValue);
return XMLTypeFactory.eINSTANCE.convertDateTime(xmlGregorianCalendar);
} else {
return null;
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public String createIDFromString(EDataType eDataType, String initialValue) {
return (String) super.createFromString(eDataType, initialValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public String convertIDToString(EDataType eDataType, Object instanceValue) {
return super.convertToString(eDataType, instanceValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
public ReqIF10Package getReqIF10Package() {
return (ReqIF10Package) getEPackage();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @deprecated
* @generated
*/
@Deprecated
public static ReqIF10Package getPackage() {
return ReqIF10Package.eINSTANCE;
}
} // ReqIF10FactoryImpl