Class TypeMapProfile
- java.lang.Object
-
- com.nomagic.magicdraw.modeltransformations.TypeMapProfile
-
@OpenApi public class TypeMapProfile extends java.lang.ObjectTypeMapProfile - class for type mapping.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classcom.nomagic.magicdraw.modeltransformations.TypeMapProfile.Typeprivate classcom.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMapPrivate class to store type map dependency linksstatic classcom.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeModifier
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap>defaultMappingIndexstatic com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeModifierEMPTY_TYPE_MODIFIERprivate ElementmAnyDestinationTypeprivate ElementmAnySourceTypeprivate java.lang.StringmBrokenStringprivate ElementmEmptyDestinationTypeprivate ElementmEmptySourceTypeprivate java.util.HashMap<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap>mForwardMapprivate java.lang.String[][]mForwardTransformationTableprivate booleanmIsBrokenprivate booleanmIsForwardprivate booleanmIsForwardBrokenprivate booleanmIsReversBrokenprivate java.util.Set<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap>mMappingsprivate PackagemModelPackageProfile packageprivate java.util.HashMap<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap>mReverseMapprivate java.lang.String[][]mReverseTransformationTable
-
Constructor Summary
Constructors Constructor Description TypeMapProfile(Package mp)Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddTypeMap(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd, java.util.Collection<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> mappings)private voidaddTypeMapPackages(Element root, java.util.List<Package> importedPackages, java.util.Set<Package> index)private voidcheckForBrokenMapping()Checks for broken mappingprivate intcountLinks(Element me, boolean forward, boolean defaultMapping)Counts type maps for model elementprivate voidcreateTypeTable()Creates type table arrayprivate voidfillDefaultMappingRulesIndex(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)private voidgenerateMapping()Generates mapping mapprivate java.util.List<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap>getAllTypeMapsByKey(Element key)Returns list of possible type maps for elementprivate intgetDirection(Element dependency, Stereotype mapStereotype)Returns default mapping directionjava.lang.StringgetDocumentation()Returns type map documentationjava.lang.StringgetErrorMessage()Returns error message for broken type mapprivate java.util.List<Package>getImportedTypeMapPackages(Package root)com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypegetMappedType(Element original)Returns mapped typeprivate ElementgetRelativeAnySourceType()Returns AnySourceType relative to mapping directionprivate ElementgetRelativeEmptyDestinationType()Returns EmptyDestinationType relative to mapping directionprivate ElementgetRelativeEmptySourceType()Returns EmptySourceType relative to mapping directionprivate static java.lang.StringgetTaggedValue(Element element, Stereotype stereotype, java.lang.String tagName)private java.lang.String[][]getTransformationTypeTableElements()Returns transformation type table elementsjavax.swing.table.TableModelgetTransformationTypeTableModel()Returns transformation type table modelprivate java.lang.StringgetTransitiveMappingElementName(Element me, boolean forward)Checks if there is mapping from element and next transitive element in chainprivate com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMapgetTypeMapForElement(Element original)Returns type map for elementprivate com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMapgetTypeMapFromElementParent(Element original)Returns type map of parent model elementPackagegetTypeMapModelPackage()Returns model package of type mapprivate booleanisAnyType(Element me)Checks if element is any typebooleanisBroken()Is type map brokenprivate booleanisChildOf(Element child, Element parent)Checks generalization links if child element is child of parent elementbooleanisDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)private static booleanisDependencyDefaultMapping(Stereotype mapStereotype, Element dependency)private booleanisEmptyType(Element me)Checks if element is empty typeprivate booleanisForwardDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)booleanisForwardMapping()Is forward mapping setbooleanisForwardMappingBroken()booleanisMappingValid(Element original, Element mapped)Checks if type mapping is valid.private booleanisReverseDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)booleanisReverseMappingBroken()private booleanisTypeMapProfile(Element typePackage)private voidparseRelationships(Element modelPackage)Parses type map relationships and generates mapping listprivate voidsetDefaultForwardMappingRule(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)private voidsetDefaultReverseMappingRule(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)voidsetForwardMapping(boolean forward)Sets forward mappingprivate voidsetProfileElements()Sets profile elements from Model Transformation profilejava.lang.StringtoString()Returns type map name
-
-
-
Field Detail
-
mModelPackage
@CheckForNull private final Package mModelPackage
Profile package
-
mForwardTransformationTable
private java.lang.String[][] mForwardTransformationTable
-
mReverseTransformationTable
private java.lang.String[][] mReverseTransformationTable
-
mBrokenString
private java.lang.String mBrokenString
-
mForwardMap
private final java.util.HashMap<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> mForwardMap
-
mReverseMap
private final java.util.HashMap<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> mReverseMap
-
mMappings
private final java.util.Set<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> mMappings
-
defaultMappingIndex
private final java.util.Map<Element,com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> defaultMappingIndex
-
mIsForward
private boolean mIsForward
-
mIsBroken
private boolean mIsBroken
-
mIsForwardBroken
private boolean mIsForwardBroken
-
mIsReversBroken
private boolean mIsReversBroken
-
mAnySourceType
private Element mAnySourceType
-
mAnyDestinationType
private Element mAnyDestinationType
-
mEmptySourceType
private Element mEmptySourceType
-
mEmptyDestinationType
private Element mEmptyDestinationType
-
EMPTY_TYPE_MODIFIER
public static final com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeModifier EMPTY_TYPE_MODIFIER
-
-
Constructor Detail
-
TypeMapProfile
public TypeMapProfile(@CheckForNull Package mp)Constructor- Parameters:
mp- profile package
-
-
Method Detail
-
getImportedTypeMapPackages
private java.util.List<Package> getImportedTypeMapPackages(Package root)
-
addTypeMapPackages
private void addTypeMapPackages(Element root, java.util.List<Package> importedPackages, java.util.Set<Package> index)
-
isTypeMapProfile
private boolean isTypeMapProfile(Element typePackage)
-
setProfileElements
private void setProfileElements()
Sets profile elements from Model Transformation profile
-
getDirection
private int getDirection(Element dependency, Stereotype mapStereotype)
Returns default mapping direction- Returns:
- default mapping direction
-
parseRelationships
private void parseRelationships(Element modelPackage)
Parses type map relationships and generates mapping list- Parameters:
modelPackage- package containing mapping relations
-
isDependencyDefaultMapping
private static boolean isDependencyDefaultMapping(Stereotype mapStereotype, Element dependency)
-
isDefault
public boolean isDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)
-
addTypeMap
private void addTypeMap(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd, java.util.Collection<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> mappings)
-
fillDefaultMappingRulesIndex
private void fillDefaultMappingRulesIndex(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)
-
setDefaultForwardMappingRule
private void setDefaultForwardMappingRule(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)
-
setDefaultReverseMappingRule
private void setDefaultReverseMappingRule(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMapToAdd)
-
getTaggedValue
@CheckForNull private static java.lang.String getTaggedValue(Element element, Stereotype stereotype, java.lang.String tagName)
-
checkForBrokenMapping
private void checkForBrokenMapping()
Checks for broken mapping
-
getTransitiveMappingElementName
@CheckForNull private java.lang.String getTransitiveMappingElementName(Element me, boolean forward)
Checks if there is mapping from element and next transitive element in chain- Parameters:
me- model elementforward- true for forward mapping, false for revese- Returns:
- name of next transitive element in chain
-
countLinks
private int countLinks(Element me, boolean forward, boolean defaultMapping)
Counts type maps for model element- Parameters:
me- model elementforward- true for forward mappings, false for reversedefaultMapping- true for default mapping, false for normal- Returns:
- number of mapping links
-
generateMapping
private void generateMapping()
Generates mapping map
-
isForwardDefault
private boolean isForwardDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)
-
isReverseDefault
private boolean isReverseDefault(com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap typeMap)
-
createTypeTable
private void createTypeTable()
Creates type table array
-
getTransformationTypeTableElements
private java.lang.String[][] getTransformationTypeTableElements()
Returns transformation type table elements- Returns:
- table elements
-
getTransformationTypeTableModel
public javax.swing.table.TableModel getTransformationTypeTableModel()
Returns transformation type table model- Returns:
- transformation type table model
-
getDocumentation
public java.lang.String getDocumentation()
Returns type map documentation- Returns:
- documentation
-
toString
public java.lang.String toString()
Returns type map name- Overrides:
toStringin classjava.lang.Object- Returns:
- name
-
getTypeMapModelPackage
public Package getTypeMapModelPackage()
Returns model package of type map- Returns:
- model package of type map
-
isForwardMapping
public boolean isForwardMapping()
Is forward mapping set- Returns:
- true for forward mapping, false for reverse
-
isBroken
public boolean isBroken()
Is type map broken- Returns:
- true if broken
-
isForwardMappingBroken
public boolean isForwardMappingBroken()
-
isReverseMappingBroken
public boolean isReverseMappingBroken()
-
getErrorMessage
public java.lang.String getErrorMessage()
Returns error message for broken type map- Returns:
- error message
-
setForwardMapping
public void setForwardMapping(boolean forward)
Sets forward mapping- Parameters:
forward- true for forward mapping, false for reverse
-
getTypeMapFromElementParent
@CheckForNull private com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap getTypeMapFromElementParent(Element original)
Returns type map of parent model element- Parameters:
original- model element- Returns:
- model element for parent type map
-
getTypeMapForElement
@CheckForNull private com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap getTypeMapForElement(Element original)
Returns type map for element- Parameters:
original- original element- Returns:
- type map
-
getMappedType
public com.nomagic.magicdraw.modeltransformations.TypeMapProfile.Type getMappedType(Element original)
Returns mapped type- Parameters:
original- original type, null for EmptySourceType/EmptyDestinationType- Returns:
- mapped (default) type for original type. If there is no maping return original element. Return null for EmtyTypes.
-
isMappingValid
public boolean isMappingValid(Element original, Element mapped)
Checks if type mapping is valid. This check should check generalizations/specifications.- Parameters:
original- original typemapped- mapped type- Returns:
- true if mapped type conforms to original type
-
isChildOf
private boolean isChildOf(Element child, Element parent)
Checks generalization links if child element is child of parent element- Parameters:
child- child elementparent- parent element- Returns:
- true if child
-
getAllTypeMapsByKey
@CheckForNull private java.util.List<com.nomagic.magicdraw.modeltransformations.TypeMapProfile.TypeMap> getAllTypeMapsByKey(Element key)
Returns list of possible type maps for element- Parameters:
key- key element- Returns:
- list of type maps, null for empty
-
getRelativeAnySourceType
private Element getRelativeAnySourceType()
Returns AnySourceType relative to mapping direction- Returns:
- AnySourceType/AnyDestinationType
-
getRelativeEmptySourceType
private Element getRelativeEmptySourceType()
Returns EmptySourceType relative to mapping direction- Returns:
- EmptySourceType/EmptyDestinationType
-
getRelativeEmptyDestinationType
private Element getRelativeEmptyDestinationType()
Returns EmptyDestinationType relative to mapping direction- Returns:
- EmptySourceType/EmptyDestinationType
-
isAnyType
private boolean isAnyType(Element me)
Checks if element is any type- Parameters:
me- element to check- Returns:
- true if element is any type
-
isEmptyType
private boolean isEmptyType(Element me)
Checks if element is empty type- Parameters:
me- element to check- Returns:
- true if element is empty type
-
-