Class MetaModel

    • Constructor Detail

      • MetaModel

        public MetaModel()
    • Method Detail

      • getAllPersistent

        public static java.util.Collection getAllPersistent()
                                                     throws XavaException
        All models (Entities and Aggregates) with a mapping associated.
        Returns:
        of type MetaModel
        Throws:
        XavaException
      • getAllPojoGenerated

        public static java.util.Collection getAllPojoGenerated()
                                                        throws XavaException
        All models (Entities and Aggregates) where its POJO code and Hiberante mapping is generated.
        Returns:
        of type MetaModel
        Throws:
        XavaException
      • addMetaFinder

        public void addMetaFinder​(MetaFinder metaFinder)
      • addMetaMethod

        public void addMetaMethod​(MetaMethod metaMethod)
      • addMetaCalculatorPostCreate

        public void addMetaCalculatorPostCreate​(MetaCalculator metaCalculator)
      • addMetaCalculatorPostLoad

        public void addMetaCalculatorPostLoad​(MetaCalculator metaCalculator)
      • addMetaCalculatorPostModify

        public void addMetaCalculatorPostModify​(MetaCalculator metaCalculator)
      • addMetaCalculatorPreRemove

        public void addMetaCalculatorPreRemove​(MetaCalculator metaCalculator)
      • addMetaValidator

        public void addMetaValidator​(MetaValidator metaValidator)
      • addMetaValidatorRemove

        public void addMetaValidatorRemove​(MetaValidator metaValidator)
      • getQualifiedName

        public java.lang.String getQualifiedName()
        If entity the name of component, if aggregate the name of component + the name of aggregate.

      • setQualifiedName

        public void setQualifiedName​(java.lang.String qualifiedName)
        If entity the name of component, if aggregate the name of component + the name of aggregate.

      • getMetaFinders

        public java.util.Collection getMetaFinders()
        Returns:
        Collection of MetaFinder. Not null
      • getMetaMethods

        public java.util.Collection getMetaMethods()
        Returns:
        Collection of MetaMethod. Not null
      • hasDefaultCalculatorOnCreate

        public boolean hasDefaultCalculatorOnCreate()
      • addMetaCollection

        public void addMetaCollection​(MetaCollection newMetaCollection)
        Parameters:
        newMetaCollection - not null
      • containsMetaProperty

        public boolean containsMetaProperty​(java.lang.String property)
      • containsMetaPropertyView

        public boolean containsMetaPropertyView​(java.lang.String property)
      • containsMetaReference

        public boolean containsMetaReference​(java.lang.String reference)
      • containsMetaCollection

        public boolean containsMetaCollection​(java.lang.String collection)
      • getPropertiesClass

        public java.lang.Class getPropertiesClass()
                                           throws XavaException
        Class that contains the properties defined in this model.

        Returns:
        Not null
        Throws:
        XavaException
      • getMembersNames

        public java.util.Collection<java.lang.String> getMembersNames()
        Ordered as in component definition file.
        Returns:
        Not null, read only and serializable
      • getMembersNamesNestingAggregates

        public java.util.Collection<java.lang.String> getMembersNamesNestingAggregates()
      • getPropertiesNames

        public java.util.List getPropertiesNames()
        Ordered as in component definition.
        Returns:
        Not null, read only and serializable
      • getReferencesNames

        public java.util.Collection getReferencesNames()
        Returns:
        Not null, read only and serializable
      • getColectionsNames

        public java.util.Collection getColectionsNames()
        Returns:
        Not null, read only and serializable
      • getAggregateReferencesNames

        public java.util.Collection getAggregateReferencesNames()
                                                         throws XavaException
        Throws:
        XavaException
      • getMetaCollectionsAgregate

        public java.util.Collection getMetaCollectionsAgregate()
                                                        throws XavaException
        Returns:
        Collection of MetaCollection, not null and read only
        Throws:
        XavaException
      • getRequiredPropertiesNames

        public java.util.Collection getRequiredPropertiesNames()
                                                        throws XavaException
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getRequiredMemberNames

        public java.util.Collection<java.lang.String> getRequiredMemberNames()
                                                                      throws XavaException
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getKeyPropertiesNames

        public java.util.Collection<java.lang.String> getKeyPropertiesNames()
                                                                     throws XavaException
        Key properties names ordered in declaration order.
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getKeyReferencesNames

        public java.util.Collection getKeyReferencesNames()
                                                   throws XavaException
        Key reference names in undetermined order.
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getAllKeyPropertiesNames

        public java.util.Collection<java.lang.String> getAllKeyPropertiesNames()
                                                                        throws XavaException
        Includes qualified properties in case of key references, ordered alphabetically.

        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getAllKeyPropertiesNamesOrderedAsInModel

        public java.util.Collection<java.lang.String> getAllKeyPropertiesNamesOrderedAsInModel()
                                                                                        throws XavaException
        Includes qualified properties in case of key references, ordered as in model.

        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
        Since:
        7.2.1
      • getPropertiesNamesWithoutHiddenNorTransient

        public java.util.List<java.lang.String> getPropertiesNamesWithoutHiddenNorTransient()
                                                                                     throws XavaException
        Ordered as in component definition.

        Calculated properties are included.

        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getMetaPropertiesKey

        public java.util.Collection<MetaProperty> getMetaPropertiesKey()
                                                                throws XavaException
        Returns:
        Collection of MetaProperty, not null and read only
        Throws:
        XavaException
      • getMetaMembersKey

        public java.util.Collection getMetaMembersKey()
                                               throws XavaException
        Key members.
        Returns:
        Collection of MetaMember, not null and read only
        Throws:
        XavaException
      • getAllMetaPropertiesKey

        public java.util.List<MetaProperty> getAllMetaPropertiesKey()
                                                             throws XavaException
        Include qualified properties in case of key references.
        Returns:
        Collection of MetaProperty, not null and read only
        Throws:
        XavaException
      • getMetaPropertiesCalculated

        public java.util.Collection getMetaPropertiesCalculated()
                                                         throws XavaException
        Returns:
        Collection of MetaProperty, not null and read only
        Throws:
        XavaException
      • getOnlyReadPropertiesNames

        public java.util.Collection getOnlyReadPropertiesNames()
                                                        throws XavaException
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getOnlyReadWithFormulaPropertiesNames

        public java.util.Collection getOnlyReadWithFormulaPropertiesNames()
                                                                   throws XavaException
        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getCalculatedPropertiesNames

        public java.util.Collection getCalculatedPropertiesNames()
        Returns:
        Collection of String, not null and read only
      • getMetaPropertiesWithDefaultValueCalculator

        public java.util.Collection getMetaPropertiesWithDefaultValueCalculator()
      • getMetaPropertiesViewWithDefaultCalculator

        public java.util.Collection getMetaPropertiesViewWithDefaultCalculator()
      • getMetaReferencesWithDefaultValueCalculator

        public java.util.Collection<MetaReference> getMetaReferencesWithDefaultValueCalculator()
      • getMetaPropertiesPersistentsFromReference

        public java.util.Collection getMetaPropertiesPersistentsFromReference​(java.lang.String referenceName)
                                                                       throws XavaException
        Ordered as in component definition.
        Throws:
        XavaException
      • getPersistentPropertiesNames

        public java.util.Collection getPersistentPropertiesNames()
                                                          throws XavaException
        Ordered as in component definition.
        Throws:
        XavaException
      • getMetaPropertiesWithDefaultValueOnCreate

        public java.util.Collection<MetaProperty> getMetaPropertiesWithDefaultValueOnCreate()
                                                                                     throws XavaException
        Excludes calculator that implements IHibernateIdGeneratorCalculator.

        Returns:
        Collection of String, not null and read only
        Throws:
        XavaException
      • getMetaProperties

        public java.util.Collection<MetaProperty> getMetaProperties()
        Returns:
        Collection of MetaProperty, not null and read only
      • getMetaReferences

        public java.util.Collection<MetaReference> getMetaReferences()
        Returns:
        Collection of MetaReference, not null and read only
      • getMetaEntityReferences

        public java.util.Collection getMetaEntityReferences()
                                                     throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaReferencesWithMapping

        public java.util.Collection getMetaReferencesWithMapping()
                                                          throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaReferencesToEntity

        public java.util.Collection getMetaReferencesToEntity()
                                                       throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaReferencesKey

        public java.util.Collection getMetaReferencesKey()
                                                  throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaReferencesKeyAndSearchKey

        public java.util.Collection getMetaReferencesKeyAndSearchKey()
                                                              throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaAggregateReferences

        public java.util.Collection getMetaAggregateReferences()
                                                        throws XavaException
        Returns:
        Collection of MetaReference, not null and read only
        Throws:
        XavaException
      • getMetaCollections

        public java.util.Collection<MetaCollection> getMetaCollections()
        Returns:
        Collection of MetaCollection, not null and read only
      • getMetaViewByDefault

        public MetaView getMetaViewByDefault()
                                      throws XavaException
        Returns:
        Not null. If no view is set, then it will generate a default one
        Throws:
        XavaException
      • getMetaComponent

        public MetaComponent getMetaComponent()
        Container component of model.

        Returns:
        Not null
      • setMetaComponent

        public void setMetaComponent​(MetaComponent metaComponent)
        Container component of model.

        Parameters:
        metaComponent - Not null
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isPojoGenerated

        public boolean isPojoGenerated()
      • setPojoGenerated

        public void setPojoGenerated​(boolean generated)
      • containsMetaReferenceWithModel

        public boolean containsMetaReferenceWithModel​(java.lang.String name)
      • extractKeyValues

        public java.util.Map extractKeyValues​(java.util.Map values)
                                       throws XavaException
        A map with the values that are keys in the sent map.

        Parameters:
        values - Not null
        Returns:
        Not null
        Throws:
        XavaException
      • extractSearchKeyValues

        public java.util.Map extractSearchKeyValues​(java.util.Map values)
                                             throws XavaException
        Throws:
        XavaException
      • extractKeyValuesFlattenEmbeddedIds

        public java.util.Map extractKeyValuesFlattenEmbeddedIds​(java.util.Map values)
                                                         throws XavaException
        Throws:
        XavaException
        Since:
        6.2.2
      • containsValidadors

        public boolean containsValidadors()
      • getMetaCalculatorsPostCreate

        public java.util.List getMetaCalculatorsPostCreate()
        Returns:
        Not null
      • getMetaCalculatorPostCreate

        public MetaCalculator getMetaCalculatorPostCreate​(int idx)
      • getMetaCalculatorsPostLoad

        public java.util.List getMetaCalculatorsPostLoad()
        Returns:
        Not null
      • getMetaCalculatorPostLoad

        public MetaCalculator getMetaCalculatorPostLoad​(int idx)
      • getMetaCalculatorsPreRemove

        public java.util.List getMetaCalculatorsPreRemove()
        Returns:
        Not null
      • getMetaCalculatorPreRemove

        public MetaCalculator getMetaCalculatorPreRemove​(int idx)
      • getMetaCalculatorsPostModify

        public java.util.List getMetaCalculatorsPostModify()
        Returns:
        Not null
      • getMetaCalculatorPostModify

        public MetaCalculator getMetaCalculatorPostModify​(int idx)
      • getMetaValidators

        public java.util.Collection getMetaValidators()
        Returns:
        Not null
      • getMetaValidatorsRemove

        public java.util.Collection getMetaValidatorsRemove()
      • toPOJO

        public java.lang.Object toPOJO​(java.util.Map values)
                                throws XavaException
        Create a POJO corresponding to this model, and populate it with the sent values in map format.

        Parameters:
        values - Values to populate the pojo. Can contains nested maps. Cannot be null
        Throws:
        XavaException
      • fillPOJO

        public void fillPOJO​(java.lang.Object pojo,
                             java.util.Map values)
                      throws XavaException
        Fill an already existing POJO corresponding to this model, and populate it with the sent values in map format.

        Parameters:
        values - Values to populate the pojo. Can contain nested maps. Cannot be null
        Throws:
        XavaException
      • toMap

        public java.util.Map toMap​(java.lang.Object modelObject)
                            throws XavaException
        Convert an object of this model in a map of values.

        The model object can be a POJO (of class in getPOJOClass()) or any object that implements the interface of this model, that is, IInvoice, ICustomer, ISeller, etc. Hence you can use POJOs or EJB2 CMP beans, or whatever object that implements the interface.

        Parameters:
        modelObject -
        Returns:
        if modelObject is null returns an empty map
        Throws:
        XavaException
      • toKeyMap

        public java.util.Map toKeyMap​(java.lang.Object modelObject)
                               throws XavaException
        Convert an object of this model in a map of values with its key values.

        The model object can be a POJO (of class in getPOJOClass()) or any object that implements the interface of this model, that is, IInvoice, ICustomer, ISeller, etc. Hence you can use POJOs or EJB2 CMP beans, or whatever object that implements the interface.

        Parameters:
        modelObject -
        Returns:
        if modelObject is null returns an empty map
        Throws:
        XavaException
      • toString

        public java.lang.String toString​(java.util.Map key)
                                  throws XavaException
        The string representation of models represented by this meta model, from a map with its values.

        Returns:
        null if the sent map is null
        Throws:
        XavaException
      • toString

        public java.lang.String toString​(java.lang.Object pojo)
                                  throws XavaException
        The string representation of models represented by this meta model, from a pojo object.

        Returns:
        null if the sent object is null
        Throws:
        XavaException
      • getViewPropertiesNames

        public java.util.Collection getViewPropertiesNames()
      • getMetaPropertiesView

        public java.util.Collection getMetaPropertiesView()
      • getMetaModelContainer

        public MetaModel getMetaModelContainer()
                                        throws XavaException
        If this is a aggregate the return the container, else the main entity.
        Returns:
        Not null
        Throws:
        XavaException
      • setContainerModelName

        public void setContainerModelName​(java.lang.String modelName)
      • getContainerModelName

        public java.lang.String getContainerModelName()
      • getMetaCollectionsWithConditionInOthersModels

        public java.util.Collection getMetaCollectionsWithConditionInOthersModels()
                                                                           throws XavaException
        Throws:
        XavaException
      • getMetaColectionsWithConditionReferenceTo

        public java.util.Collection getMetaColectionsWithConditionReferenceTo​(java.lang.String modelName)
      • addInterfaceName

        public void addInterfaceName​(java.lang.String name)
      • getInterfacesNames

        public java.util.Collection getInterfacesNames()
      • getImplements

        public java.lang.String getImplements()
        String in java format: comma separate interfaces names
      • getRecursiveQualifiedPropertiesNames

        public java.util.Collection getRecursiveQualifiedPropertiesNames()
                                                                  throws XavaException
        Does not include Transient properties and properties from collections
        Throws:
        XavaException
      • getRecursiveQualifiedPropertiesNamesUntilSecondLevel

        public java.util.Collection getRecursiveQualifiedPropertiesNamesUntilSecondLevel()
                                                                                  throws XavaException
        Does not include Transient properties and properties from collections
        Throws:
        XavaException
        Since:
        4.9
      • getRecursiveQualifiedPropertiesNamesIncludingCollections

        public java.util.Collection<java.lang.String> getRecursiveQualifiedPropertiesNamesIncludingCollections()
                                                                                                        throws XavaException
        Does not include Transient properties
        Throws:
        XavaException
        Since:
        6.5
      • getRecursiveQualifiedPropertiesNamesUntilSecondLevelIncludingCollections

        public java.util.Collection<java.lang.String> getRecursiveQualifiedPropertiesNamesUntilSecondLevelIncludingCollections()
                                                                                                                        throws XavaException
        Does not include Transient properties
        Throws:
        XavaException
        Since:
        6.5
      • get

        public static MetaModel get​(java.lang.String modelName)
                             throws ElementNotFoundException,
                                    XavaException
        Gets the MetaModel from its name.

        Qualified names are supported, that is you can use:

         MetaModel.get("Invoice.InvoceDetail");
         
        If InvoiceDetail is a aggregate of Invoice component.

        For obtaining the entity metamodel you can use the name of the component, in this way

         MetaModel.get("Invoice");
         
        Throws:
        ElementNotFoundException - If the component does not have associated any MetaModel
        XavaException - Any problem
      • existsForPOJOClass

        public static boolean existsForPOJOClass​(java.lang.Class pojoClass)
                                          throws java.lang.Exception
        To ask if the pojo class has an MetaModel associated.
        Throws:
        java.lang.Exception
      • isPOJOAvailable

        public boolean isPOJOAvailable()
        Since:
        5.6.1
      • setPOJOKeyClass

        public void setPOJOKeyClass​(java.lang.Class pojoKeyClass)
      • isAnnotatedEJB3

        public boolean isAnnotatedEJB3()
      • setAnnotatedEJB3

        public void setAnnotatedEJB3​(boolean annotatedEJB3)
      • hasDateTimeProperty

        public boolean hasDateTimeProperty()
      • hasHiddenKey

        public boolean hasHiddenKey()
      • someModelHasDefaultCalculatorOnCreate

        public static boolean someModelHasDefaultCalculatorOnCreate()
      • someModelHasPostCreateCalculator

        public static boolean someModelHasPostCreateCalculator()
      • someModelHasPostModifyCalculator

        public static boolean someModelHasPostModifyCalculator()
      • someModelHasPreRemoveCalculator

        public static boolean someModelHasPreRemoveCalculator()
      • someModelHasPostLoadCalculator

        public static boolean someModelHasPostLoadCalculator()
      • getContainerReference

        public java.lang.String getContainerReference()
      • setContainerReference

        public void setContainerReference​(java.lang.String containerReference)
      • isXmlComponent

        public boolean isXmlComponent()
        Since:
        5.6
      • setXmlComponent

        public void setXmlComponent​(boolean xmlComponent)
        Since:
        5.6