Class ModelImpl

  • All Implemented Interfaces:
    Model

    public class ModelImpl
    extends java.lang.Object
    implements Model
    A model contains all defined types and the relationship between them.
    Author:
    Daniel Meyer
    • Field Detail

      • actualNsToAlternative

        protected final java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> actualNsToAlternative
      • alternativeNsToActual

        protected final java.util.Map<java.lang.String,​java.lang.String> alternativeNsToActual
    • Constructor Detail

      • ModelImpl

        public ModelImpl​(java.lang.String modelName)
        Create a new Model with a model name.
        Parameters:
        modelName - the model name to identify the model
    • Method Detail

      • declareAlternativeNamespace

        public void declareAlternativeNamespace​(java.lang.String alternativeNs,
                                                java.lang.String actualNs)
        Declares an alternative namespace for an actual so that during lookup of elements/attributes both will be considered. This can be used if a newer namespaces replaces an older one but XML files with the old one should still be parseable.
        Parameters:
        alternativeNs -
        actualNs -
        Throws:
        java.lang.IllegalArgumentException - if the alternative is already used or if the actual namespace has an alternative
      • undeclareAlternativeNamespace

        public void undeclareAlternativeNamespace​(java.lang.String alternativeNs)
      • getAlternativeNamespaces

        public java.util.Set<java.lang.String> getAlternativeNamespaces​(java.lang.String actualNs)
        Specified by:
        getAlternativeNamespaces in interface Model
      • getAlternativeNamespace

        public java.lang.String getAlternativeNamespace​(java.lang.String actualNs)
        Description copied from interface: Model
        Returns the alternative namespace URI for a namespace URI
        Specified by:
        getAlternativeNamespace in interface Model
        Parameters:
        actualNs - the actual namespace URI
        Returns:
        the alternative namespace URI or null if none is set
      • getActualNamespace

        public java.lang.String getActualNamespace​(java.lang.String alternativeNs)
        Description copied from interface: Model
        Returns the actual namespace URI for an alternative namespace URI
        Specified by:
        getActualNamespace in interface Model
        Parameters:
        alternativeNs - the alternative namespace URI
        Returns:
        the actual namespace URI or null if none is set
      • getTypes

        public java.util.Collection<ModelElementType> getTypes()
        Description copied from interface: Model
        Gets the collection of all ModelElementType defined in the model.
        Specified by:
        getTypes in interface Model
        Returns:
        the list of all defined element types of this model
      • getTypeForName

        public ModelElementType getTypeForName​(java.lang.String typeName)
        Description copied from interface: Model
        Gets the defined ModelElementType for a type by its name.
        Specified by:
        getTypeForName in interface Model
        Parameters:
        typeName - the name of the type
        Returns:
        the element type or null if no type is defined for the name
      • getTypeForName

        public ModelElementType getTypeForName​(java.lang.String namespaceUri,
                                               java.lang.String typeName)
        Description copied from interface: Model
        Gets the defined ModelElementType for a type by its name and namespace URI.
        Specified by:
        getTypeForName in interface Model
        Parameters:
        namespaceUri - the namespace URI for the type
        typeName - the name of the type
        Returns:
        the element type or null if no type is defined for the name and namespace URI
      • registerType

        public void registerType​(ModelElementType modelElementType,
                                 java.lang.Class<? extends ModelElementInstance> instanceType)
        Registers a ModelElementType in this Model.
        Parameters:
        modelElementType - the element type to register
        instanceType - the instance class of the type to register
      • getModelName

        public java.lang.String getModelName()
        Description copied from interface: Model
        Returns the model name, which is the identifier of this model.
        Specified by:
        getModelName in interface Model
        Returns:
        the model name
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object