org.eclipse.emf.importer.rose.builder
Class RoseEcoreBuilder

java.lang.Object
  extended by org.eclipse.emf.importer.rose.builder.RoseEcoreBuilder
All Implemented Interfaces:
RoseVisitor

public class RoseEcoreBuilder
extends java.lang.Object
implements RoseVisitor

Traverses the Rose file and create eCore object in memory.


Field Summary
protected static java.util.regex.Pattern ANNOTATION_DETAIL_PATTERN
           
protected static java.util.regex.Pattern ANNOTATION_PATTERN
           
protected  java.util.Set<EAttribute> attributesToConvert
           
protected  java.util.Set<EModelElement> bounded
           
protected static java.util.Comparator<java.lang.Object> eClassComparator
           
protected  java.util.Map<EEnum,java.lang.String> eEnums
           
protected  EGenericType eGenericType1
           
protected  EGenericType eGenericType2
           
protected  java.util.Map<EModelElement,RoseNode> eModelElementToRoseNodeMap
           
protected  java.util.Comparator<EStructuralFeature> eStructuralFeatureComparator
           
protected  java.util.List<EStructuralFeature> eStructuralFeatures
           
protected  java.util.Map<EStructuralFeature,java.lang.String> eStructuralFeatureToXMLNamespaceMap
           
protected  java.util.Map<java.lang.String,java.lang.Object> idToParentMap
           
 boolean noQualify
           
protected  EReference ref1
           
protected  EReference ref2
           
protected  RoseNode role1
           
protected  RoseNode role2
           
protected  RoseUtil roseUtil
           
 boolean unsettablePrimitive
           
 
Constructor Summary
RoseEcoreBuilder(RoseUtil roseUtil)
           
 
Method Summary
protected  void build(RoseNode roseNode, java.lang.Object parent, ENamedElement eNamedElement)
           
 void createEPackageForRootClasses(EList<EObject> extent, RoseNode roseNode, java.lang.String packageName)
           
protected  void error(java.lang.String message)
           
protected  EClassifier getBasicType(java.lang.String value)
           
protected  EList<EObject> getExtentFromTableObject(RoseNode roseNode)
           
protected  java.lang.String getQualifiedTypeName(EModelElement eModelElement, java.lang.String type)
           
protected  java.lang.String getQualifiedTypeName(ETypedElement typedElement, java.lang.String type)
           
protected  java.util.List<EGenericType> parseTemplateArguments(java.lang.String templateArguments)
           
protected  java.util.List<ETypeParameter> parseTemplateParameters(java.lang.String templateParameters)
           
protected  void populateEEnumFromDocumentation(EEnum eEnum, java.lang.String documentation)
           
protected  void setEAttributeProperties(RoseNode roseNode, EAttribute eAttribute)
           
protected  void setEClassProperties(RoseNode roseNode, EClass eClass)
           
protected  void setEDataTypeProperties(RoseNode roseNode, EDataType eDataType)
           
protected  boolean setEEnumLiteralProperties(RoseNode roseNode, EEnumLiteral eEnumLiteral)
           
protected  void setEEnumProperties(RoseNode roseNode, EEnum eEnum)
           
 void setEEnums()
           
protected  void setEModelElementProperties(RoseNode roseNode, EModelElement eModelElement)
           
protected  void setEOperationProperties(RoseNode roseNode, EOperation eOperation)
           
protected  void setEPackageProperties(RoseNode roseNode, EPackage ePackage, java.lang.String tentativeName)
           
protected  void setEParameterProperties(RoseNode roseNode, EParameter eParameter)
           
protected  void setEReferenceDefaultMultiplicity(EReference eReference)
           
protected  void setEReferenceIsContainment(EReference ref, RoseNode role1, RoseNode role2)
           
protected  void setEReferenceProperties(RoseNode roseNode, EReference eReference)
           
 void setEReferences()
           
protected  void setEStructuralFeatureProperties(RoseNode roseNode, EStructuralFeature eStructuralFeature)
           
protected  void setEStructuralFeatureVisibility(RoseNode roseNode, EStructuralFeature eStructuralFeature)
          Maps the single, user-friendly Rose setting into accessor method suppression, via EcoreUtil.
 void setETypeClassifier()
           
protected  void setETypedElementProperties(RoseNode roseNode, ETypedElement eTypedElement)
           
 void setIDs(EObject parent, EObject child)
           
protected  void setResultType(RoseNode roseNode, EOperation eOperation)
           
 void setSuper()
           
protected  void sortSuper(java.util.Map<EClass,java.util.List<EGenericType>[]> superMap)
           
protected  java.lang.String upperCaseName(java.lang.String name)
           
 void validate(EObject object)
           
protected  java.lang.Object validateEClass(EClass eClass)
           
protected  java.lang.Object validateEDataType(EDataType eDataType)
           
protected  java.lang.Object validateEEnum(EEnum eEnum)
           
protected  java.lang.String validName(java.lang.String name)
           
protected  void visitAssociation(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitClass(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitClassattribute(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitClassCategory(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitInheritanceRelationship(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
 void visitList(RoseNode roseNode)
           
 void visitObject(RoseNode roseNode)
           
protected  void visitObject(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectType, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitOperation(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitParameter(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void visitRole(RoseNode roseNode, java.lang.String roseNodeValue, java.lang.String objectKey, java.lang.String objectName, java.lang.Object parent)
           
protected  void warning(java.lang.String message)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

noQualify

public boolean noQualify

unsettablePrimitive

public boolean unsettablePrimitive

roseUtil

protected RoseUtil roseUtil

bounded

protected java.util.Set<EModelElement> bounded

eStructuralFeatureToXMLNamespaceMap

protected java.util.Map<EStructuralFeature,java.lang.String> eStructuralFeatureToXMLNamespaceMap

eStructuralFeatures

protected java.util.List<EStructuralFeature> eStructuralFeatures

eEnums

protected java.util.Map<EEnum,java.lang.String> eEnums

idToParentMap

protected java.util.Map<java.lang.String,java.lang.Object> idToParentMap

ref1

protected EReference ref1

ref2

protected EReference ref2

role1

protected RoseNode role1

role2

protected RoseNode role2

eGenericType1

protected EGenericType eGenericType1

eGenericType2

protected EGenericType eGenericType2

attributesToConvert

protected java.util.Set<EAttribute> attributesToConvert

eModelElementToRoseNodeMap

protected java.util.Map<EModelElement,RoseNode> eModelElementToRoseNodeMap

ANNOTATION_PATTERN

protected static final java.util.regex.Pattern ANNOTATION_PATTERN

ANNOTATION_DETAIL_PATTERN

protected static final java.util.regex.Pattern ANNOTATION_DETAIL_PATTERN

eClassComparator

protected static java.util.Comparator<java.lang.Object> eClassComparator

eStructuralFeatureComparator

protected java.util.Comparator<EStructuralFeature> eStructuralFeatureComparator
Constructor Detail

RoseEcoreBuilder

public RoseEcoreBuilder(RoseUtil roseUtil)
Method Detail

visitList

public void visitList(RoseNode roseNode)
Specified by:
visitList in interface RoseVisitor

visitObject

public void visitObject(RoseNode roseNode)
Specified by:
visitObject in interface RoseVisitor

visitObject

protected void visitObject(RoseNode roseNode,
                           java.lang.String roseNodeValue,
                           java.lang.String objectKey,
                           java.lang.String objectType,
                           java.lang.String objectName,
                           java.lang.Object parent)

visitClassCategory

protected void visitClassCategory(RoseNode roseNode,
                                  java.lang.String roseNodeValue,
                                  java.lang.String objectKey,
                                  java.lang.String objectName,
                                  java.lang.Object parent)

visitClass

protected void visitClass(RoseNode roseNode,
                          java.lang.String roseNodeValue,
                          java.lang.String objectKey,
                          java.lang.String objectName,
                          java.lang.Object parent)

visitOperation

protected void visitOperation(RoseNode roseNode,
                              java.lang.String roseNodeValue,
                              java.lang.String objectKey,
                              java.lang.String objectName,
                              java.lang.Object parent)

visitParameter

protected void visitParameter(RoseNode roseNode,
                              java.lang.String roseNodeValue,
                              java.lang.String objectKey,
                              java.lang.String objectName,
                              java.lang.Object parent)

visitInheritanceRelationship

protected void visitInheritanceRelationship(RoseNode roseNode,
                                            java.lang.String roseNodeValue,
                                            java.lang.String objectKey,
                                            java.lang.String objectName,
                                            java.lang.Object parent)

visitClassattribute

protected void visitClassattribute(RoseNode roseNode,
                                   java.lang.String roseNodeValue,
                                   java.lang.String objectKey,
                                   java.lang.String objectName,
                                   java.lang.Object parent)

visitAssociation

protected void visitAssociation(RoseNode roseNode,
                                java.lang.String roseNodeValue,
                                java.lang.String objectKey,
                                java.lang.String objectName,
                                java.lang.Object parent)

visitRole

protected void visitRole(RoseNode roseNode,
                         java.lang.String roseNodeValue,
                         java.lang.String objectKey,
                         java.lang.String objectName,
                         java.lang.Object parent)

getExtentFromTableObject

protected EList<EObject> getExtentFromTableObject(RoseNode roseNode)

setEReferenceIsContainment

protected void setEReferenceIsContainment(EReference ref,
                                          RoseNode role1,
                                          RoseNode role2)

setResultType

protected void setResultType(RoseNode roseNode,
                             EOperation eOperation)

setEModelElementProperties

protected void setEModelElementProperties(RoseNode roseNode,
                                          EModelElement eModelElement)

setEPackageProperties

protected void setEPackageProperties(RoseNode roseNode,
                                     EPackage ePackage,
                                     java.lang.String tentativeName)

setEClassProperties

protected void setEClassProperties(RoseNode roseNode,
                                   EClass eClass)

setEDataTypeProperties

protected void setEDataTypeProperties(RoseNode roseNode,
                                      EDataType eDataType)

setEEnumProperties

protected void setEEnumProperties(RoseNode roseNode,
                                  EEnum eEnum)

populateEEnumFromDocumentation

protected void populateEEnumFromDocumentation(EEnum eEnum,
                                              java.lang.String documentation)

setEOperationProperties

protected void setEOperationProperties(RoseNode roseNode,
                                       EOperation eOperation)

setEAttributeProperties

protected void setEAttributeProperties(RoseNode roseNode,
                                       EAttribute eAttribute)

setEReferenceProperties

protected void setEReferenceProperties(RoseNode roseNode,
                                       EReference eReference)

setEStructuralFeatureProperties

protected void setEStructuralFeatureProperties(RoseNode roseNode,
                                               EStructuralFeature eStructuralFeature)

setETypedElementProperties

protected void setETypedElementProperties(RoseNode roseNode,
                                          ETypedElement eTypedElement)

setEStructuralFeatureVisibility

protected void setEStructuralFeatureVisibility(RoseNode roseNode,
                                               EStructuralFeature eStructuralFeature)
Maps the single, user-friendly Rose setting into accessor method suppression, via EcoreUtil.


setEEnumLiteralProperties

protected boolean setEEnumLiteralProperties(RoseNode roseNode,
                                            EEnumLiteral eEnumLiteral)

setEParameterProperties

protected void setEParameterProperties(RoseNode roseNode,
                                       EParameter eParameter)

setEReferenceDefaultMultiplicity

protected void setEReferenceDefaultMultiplicity(EReference eReference)

setEEnums

public void setEEnums()

setSuper

public void setSuper()

sortSuper

protected void sortSuper(java.util.Map<EClass,java.util.List<EGenericType>[]> superMap)

parseTemplateParameters

protected java.util.List<ETypeParameter> parseTemplateParameters(java.lang.String templateParameters)

parseTemplateArguments

protected java.util.List<EGenericType> parseTemplateArguments(java.lang.String templateArguments)

setIDs

public void setIDs(EObject parent,
                   EObject child)

validate

public void validate(EObject object)

validateEDataType

protected java.lang.Object validateEDataType(EDataType eDataType)

validateEEnum

protected java.lang.Object validateEEnum(EEnum eEnum)

validateEClass

protected java.lang.Object validateEClass(EClass eClass)

setEReferences

public void setEReferences()

setETypeClassifier

public void setETypeClassifier()

getBasicType

protected EClassifier getBasicType(java.lang.String value)

createEPackageForRootClasses

public void createEPackageForRootClasses(EList<EObject> extent,
                                         RoseNode roseNode,
                                         java.lang.String packageName)

build

protected void build(RoseNode roseNode,
                     java.lang.Object parent,
                     ENamedElement eNamedElement)

upperCaseName

protected java.lang.String upperCaseName(java.lang.String name)

validName

protected java.lang.String validName(java.lang.String name)

warning

protected void warning(java.lang.String message)

error

protected void error(java.lang.String message)

getQualifiedTypeName

protected java.lang.String getQualifiedTypeName(ETypedElement typedElement,
                                                java.lang.String type)

getQualifiedTypeName

protected java.lang.String getQualifiedTypeName(EModelElement eModelElement,
                                                java.lang.String type)

Copyright 2001-2012 IBM Corporation and others.
All Rights Reserved.