Class DMNModelImpl

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, org.kie.dmn.api.core.DMNMessageContainer, org.kie.dmn.api.core.DMNModel, DMNMessageManager

    public class DMNModelImpl
    extends java.lang.Object
    implements org.kie.dmn.api.core.DMNModel, DMNMessageManager, java.io.Externalizable
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      DMNModelImpl()  
      DMNModelImpl​(org.kie.dmn.model.api.Definitions definitions)  
      DMNModelImpl​(org.kie.dmn.model.api.Definitions dmndefs, org.kie.api.io.Resource resource)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAll​(java.util.List<? extends org.kie.dmn.api.core.DMNMessage> messages)  
      void addAllUnfiltered​(java.util.List<? extends org.kie.dmn.api.core.DMNMessage> messages)
      Internal utility method.
      void addBusinessKnowledgeModel​(org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode bkm)  
      void addDecision​(org.kie.dmn.api.core.ast.DecisionNode dn)  
      void addDecisionService​(org.kie.dmn.api.core.ast.DecisionServiceNode dsn)  
      void addImportChainChild​(org.kie.dmn.core.impl.DMNModelImpl.ImportChain child, java.lang.String alias)  
      void addInput​(org.kie.dmn.api.core.ast.InputDataNode idn)  
      void addItemDefinition​(org.kie.dmn.api.core.ast.ItemDefNode idn)  
      org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage msg)  
      org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity, java.lang.String message, org.kie.dmn.api.core.DMNMessageType messageType, org.kie.dmn.model.api.DMNModelInstrumentedBase source)  
      org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity, java.lang.String message, org.kie.dmn.api.core.DMNMessageType messageType, org.kie.dmn.model.api.DMNModelInstrumentedBase source, java.lang.Throwable exception)  
      org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity, java.lang.String message, org.kie.dmn.api.core.DMNMessageType messageType, org.kie.dmn.model.api.DMNModelInstrumentedBase source, org.kie.dmn.api.feel.runtime.events.FEELEvent feelEvent)  
      void addPMMLImportInfo​(DMNImportPMMLInfo info)  
      org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode getBusinessKnowledgeModelById​(java.lang.String id)  
      org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode getBusinessKnowledgeModelByName​(java.lang.String name)  
      java.util.Set<org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode> getBusinessKnowledgeModels()  
      org.kie.dmn.api.core.ast.DecisionNode getDecisionById​(java.lang.String id)  
      org.kie.dmn.api.core.ast.DecisionNode getDecisionByName​(java.lang.String name)  
      java.util.Set<org.kie.dmn.api.core.ast.DecisionNode> getDecisions()  
      org.kie.dmn.api.core.ast.DecisionServiceNode getDecisionServiceById​(java.lang.String id)  
      org.kie.dmn.api.core.ast.DecisionServiceNode getDecisionServiceByName​(java.lang.String name)  
      java.util.Collection<org.kie.dmn.api.core.ast.DecisionServiceNode> getDecisionServices()  
      org.kie.dmn.model.api.Definitions getDefinitions()  
      java.util.Map<java.lang.String,​javax.xml.namespace.QName> getImportAliasesForNS()  
      java.util.Optional<java.lang.String> getImportAliasFor​(java.lang.String ns, java.lang.String iModelName)  
      org.kie.dmn.core.impl.DMNModelImpl.ImportChain getImportChain()  
      java.util.Map<java.lang.String,​java.util.Collection<java.util.List<java.lang.String>>> getImportChainAliases()  
      java.util.List<org.kie.dmn.api.core.DMNModel> getImportChainDirectChildModels()  
      javax.xml.namespace.QName getImportNamespaceAndNameforAlias​(java.lang.String iAlias)  
      org.kie.dmn.api.core.ast.InputDataNode getInputById​(java.lang.String id)  
      org.kie.dmn.api.core.ast.InputDataNode getInputByName​(java.lang.String name)  
      java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getInputs()  
      org.kie.dmn.api.core.ast.ItemDefNode getItemDefinitionById​(java.lang.String id)  
      org.kie.dmn.api.core.ast.ItemDefNode getItemDefinitionByName​(java.lang.String name)  
      java.util.Set<org.kie.dmn.api.core.ast.ItemDefNode> getItemDefinitions()  
      java.util.List<org.kie.dmn.api.core.DMNMessage> getMessages()  
      java.util.List<org.kie.dmn.api.core.DMNMessage> getMessages​(org.kie.dmn.api.core.DMNMessage.Severity... sevs)  
      java.lang.String getName()  
      java.lang.String getNamespace()  
      java.util.Map<java.lang.String,​DMNImportPMMLInfo> getPmmlImportInfo()  
      java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getRequiredInputsForDecisionId​(java.lang.String decisionId)  
      java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getRequiredInputsForDecisionName​(java.lang.String decisionName)  
      org.kie.api.io.Resource getResource()  
      DMNTypeRegistry getTypeRegistry()  
      boolean hasErrors()  
      boolean isRuntimeTypeCheck()  
      java.lang.String nameInCurrentModel​(org.kie.dmn.api.core.ast.DMNNode node)
      Given a DMNNode, compute the proper name of the node, considering DMN-Imports.
      void readExternal​(java.io.ObjectInput in)  
      boolean removeDMNNodeFromIndexes​(org.kie.dmn.api.core.ast.DMNNode node)  
      void setDefinitions​(org.kie.dmn.model.api.Definitions definitions)  
      void setImportAliasForNS​(java.lang.String iAlias, java.lang.String iNS, java.lang.String iModelName)  
      void setResource​(org.kie.api.io.Resource resource)  
      void setRuntimeTypeCheck​(boolean runtimeTypeCheck)  
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DMNModelImpl

        public DMNModelImpl()
      • DMNModelImpl

        public DMNModelImpl​(org.kie.dmn.model.api.Definitions definitions)
      • DMNModelImpl

        public DMNModelImpl​(org.kie.dmn.model.api.Definitions dmndefs,
                            org.kie.api.io.Resource resource)
    • Method Detail

      • getNamespace

        public java.lang.String getNamespace()
        Specified by:
        getNamespace in interface org.kie.dmn.api.core.DMNModel
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface org.kie.dmn.api.core.DMNModel
      • getDefinitions

        public org.kie.dmn.model.api.Definitions getDefinitions()
        Specified by:
        getDefinitions in interface org.kie.dmn.api.core.DMNModel
      • setDefinitions

        public void setDefinitions​(org.kie.dmn.model.api.Definitions definitions)
      • nameInCurrentModel

        public java.lang.String nameInCurrentModel​(org.kie.dmn.api.core.ast.DMNNode node)
        Given a DMNNode, compute the proper name of the node, considering DMN-Imports. For DMNNode in this current model, name is simply the name of the model. For imported DMNNodes, this is the name with the prefix of the direct-dependency of the import `name`. For transitively-imported DMNNodes, it is always null.
      • addInput

        public void addInput​(org.kie.dmn.api.core.ast.InputDataNode idn)
      • getInputById

        public org.kie.dmn.api.core.ast.InputDataNode getInputById​(java.lang.String id)
        Specified by:
        getInputById in interface org.kie.dmn.api.core.DMNModel
      • getInputByName

        public org.kie.dmn.api.core.ast.InputDataNode getInputByName​(java.lang.String name)
        Specified by:
        getInputByName in interface org.kie.dmn.api.core.DMNModel
      • getInputs

        public java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getInputs()
        Specified by:
        getInputs in interface org.kie.dmn.api.core.DMNModel
      • addDecision

        public void addDecision​(org.kie.dmn.api.core.ast.DecisionNode dn)
      • getDecisionById

        public org.kie.dmn.api.core.ast.DecisionNode getDecisionById​(java.lang.String id)
        Specified by:
        getDecisionById in interface org.kie.dmn.api.core.DMNModel
      • getDecisionByName

        public org.kie.dmn.api.core.ast.DecisionNode getDecisionByName​(java.lang.String name)
        Specified by:
        getDecisionByName in interface org.kie.dmn.api.core.DMNModel
      • getDecisions

        public java.util.Set<org.kie.dmn.api.core.ast.DecisionNode> getDecisions()
        Specified by:
        getDecisions in interface org.kie.dmn.api.core.DMNModel
      • getRequiredInputsForDecisionName

        public java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getRequiredInputsForDecisionName​(java.lang.String decisionName)
        Specified by:
        getRequiredInputsForDecisionName in interface org.kie.dmn.api.core.DMNModel
      • getRequiredInputsForDecisionId

        public java.util.Set<org.kie.dmn.api.core.ast.InputDataNode> getRequiredInputsForDecisionId​(java.lang.String decisionId)
        Specified by:
        getRequiredInputsForDecisionId in interface org.kie.dmn.api.core.DMNModel
      • addDecisionService

        public void addDecisionService​(org.kie.dmn.api.core.ast.DecisionServiceNode dsn)
      • getDecisionServiceById

        public org.kie.dmn.api.core.ast.DecisionServiceNode getDecisionServiceById​(java.lang.String id)
      • getDecisionServiceByName

        public org.kie.dmn.api.core.ast.DecisionServiceNode getDecisionServiceByName​(java.lang.String name)
      • getDecisionServices

        public java.util.Collection<org.kie.dmn.api.core.ast.DecisionServiceNode> getDecisionServices()
        Specified by:
        getDecisionServices in interface org.kie.dmn.api.core.DMNModel
      • addBusinessKnowledgeModel

        public void addBusinessKnowledgeModel​(org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode bkm)
      • getBusinessKnowledgeModelById

        public org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode getBusinessKnowledgeModelById​(java.lang.String id)
        Specified by:
        getBusinessKnowledgeModelById in interface org.kie.dmn.api.core.DMNModel
      • getBusinessKnowledgeModelByName

        public org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode getBusinessKnowledgeModelByName​(java.lang.String name)
        Specified by:
        getBusinessKnowledgeModelByName in interface org.kie.dmn.api.core.DMNModel
      • getBusinessKnowledgeModels

        public java.util.Set<org.kie.dmn.api.core.ast.BusinessKnowledgeModelNode> getBusinessKnowledgeModels()
        Specified by:
        getBusinessKnowledgeModels in interface org.kie.dmn.api.core.DMNModel
      • addItemDefinition

        public void addItemDefinition​(org.kie.dmn.api.core.ast.ItemDefNode idn)
      • getItemDefinitionById

        public org.kie.dmn.api.core.ast.ItemDefNode getItemDefinitionById​(java.lang.String id)
        Specified by:
        getItemDefinitionById in interface org.kie.dmn.api.core.DMNModel
      • getItemDefinitionByName

        public org.kie.dmn.api.core.ast.ItemDefNode getItemDefinitionByName​(java.lang.String name)
        Specified by:
        getItemDefinitionByName in interface org.kie.dmn.api.core.DMNModel
      • getItemDefinitions

        public java.util.Set<org.kie.dmn.api.core.ast.ItemDefNode> getItemDefinitions()
        Specified by:
        getItemDefinitions in interface org.kie.dmn.api.core.DMNModel
      • getMessages

        public java.util.List<org.kie.dmn.api.core.DMNMessage> getMessages()
        Specified by:
        getMessages in interface org.kie.dmn.api.core.DMNMessageContainer
      • getMessages

        public java.util.List<org.kie.dmn.api.core.DMNMessage> getMessages​(org.kie.dmn.api.core.DMNMessage.Severity... sevs)
        Specified by:
        getMessages in interface org.kie.dmn.api.core.DMNMessageContainer
      • hasErrors

        public boolean hasErrors()
        Specified by:
        hasErrors in interface org.kie.dmn.api.core.DMNMessageContainer
      • addAll

        public void addAll​(java.util.List<? extends org.kie.dmn.api.core.DMNMessage> messages)
        Specified by:
        addAll in interface DMNMessageManager
      • addMessage

        public org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage msg)
        Specified by:
        addMessage in interface DMNMessageManager
      • addMessage

        public org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity,
                                                          java.lang.String message,
                                                          org.kie.dmn.api.core.DMNMessageType messageType,
                                                          org.kie.dmn.model.api.DMNModelInstrumentedBase source)
        Specified by:
        addMessage in interface DMNMessageManager
      • addMessage

        public org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity,
                                                          java.lang.String message,
                                                          org.kie.dmn.api.core.DMNMessageType messageType,
                                                          org.kie.dmn.model.api.DMNModelInstrumentedBase source,
                                                          java.lang.Throwable exception)
        Specified by:
        addMessage in interface DMNMessageManager
      • addMessage

        public org.kie.dmn.api.core.DMNMessage addMessage​(org.kie.dmn.api.core.DMNMessage.Severity severity,
                                                          java.lang.String message,
                                                          org.kie.dmn.api.core.DMNMessageType messageType,
                                                          org.kie.dmn.model.api.DMNModelInstrumentedBase source,
                                                          org.kie.dmn.api.feel.runtime.events.FEELEvent feelEvent)
        Specified by:
        addMessage in interface DMNMessageManager
      • removeDMNNodeFromIndexes

        public boolean removeDMNNodeFromIndexes​(org.kie.dmn.api.core.ast.DMNNode node)
      • setResource

        public void setResource​(org.kie.api.io.Resource resource)
      • getResource

        public org.kie.api.io.Resource getResource()
        Specified by:
        getResource in interface org.kie.dmn.api.core.DMNModel
      • isRuntimeTypeCheck

        public boolean isRuntimeTypeCheck()
        Returns:
        a compile-time preference to indicate if type-check should be performed during runtime evaluation.
      • setRuntimeTypeCheck

        public void setRuntimeTypeCheck​(boolean runtimeTypeCheck)
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • setImportAliasForNS

        public void setImportAliasForNS​(java.lang.String iAlias,
                                        java.lang.String iNS,
                                        java.lang.String iModelName)
      • getImportAliasesForNS

        public java.util.Map<java.lang.String,​javax.xml.namespace.QName> getImportAliasesForNS()
      • getImportAliasFor

        public java.util.Optional<java.lang.String> getImportAliasFor​(java.lang.String ns,
                                                                      java.lang.String iModelName)
      • getImportNamespaceAndNameforAlias

        public javax.xml.namespace.QName getImportNamespaceAndNameforAlias​(java.lang.String iAlias)
      • addImportChainChild

        public void addImportChainChild​(org.kie.dmn.core.impl.DMNModelImpl.ImportChain child,
                                        java.lang.String alias)
      • getImportChain

        public org.kie.dmn.core.impl.DMNModelImpl.ImportChain getImportChain()
      • getImportChainAliases

        public java.util.Map<java.lang.String,​java.util.Collection<java.util.List<java.lang.String>>> getImportChainAliases()
      • getImportChainDirectChildModels

        public java.util.List<org.kie.dmn.api.core.DMNModel> getImportChainDirectChildModels()
      • addAllUnfiltered

        public void addAllUnfiltered​(java.util.List<? extends org.kie.dmn.api.core.DMNMessage> messages)
        Description copied from interface: DMNMessageManager
        Internal utility method.
        Specified by:
        addAllUnfiltered in interface DMNMessageManager
      • getPmmlImportInfo

        public java.util.Map<java.lang.String,​DMNImportPMMLInfo> getPmmlImportInfo()