Learning
Documentation
Community
Open Exchange
Global Masters
Home / Class Reference / ENSLIB namespace / %iKnow.DomainDefinition
Private  Storage   

%iKnow.DomainDefinition


abstract class %iKnow.DomainDefinition extends
%RegisteredObject

Subclasses of this class declaratively define an iKnow domain and its contents using an XML representation in the Domain XData block. Compiling this class will automatically create the iKnow domain and any static elements or settings within, such as metadata fields, domain parameters and metrics. Using %Build) users can then "build" the contents of the domain, loading any sources from the locations referred to in Domain and populating relevant metadata, matching and metrics.

For a detailed reference of the available elements and attributes of this XData block, consult the class reference for %iKnow.Model.domain and other classes in the %iKnow.Model package.

Inventory


Parameters Properties Methods Queries Indices ForeignKeys Triggers
25


Summary


Methods
%%OIDGet %AddToSaveSet %ApplyDomainParameters %ApplyDomainParametersInternal
%BindExport %Build %BuildObjectGraph %ClassIsLatestVersion
%ClassName %Close %ConstructClone %CreateDomainClass
%CreateStaticElements %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%DropData %DropDomain %DropManagedConfiguration %DropManagedUserDictionary
%Extends %GetCustomizations %GetDomainId %GetDomainName
%GetExpressionValue %GetModel %GetParameter %IncrementCount
%IsA %IsModified %IsProperCode %New
%NormalizeObject %ObjectModified %OnAfterBuild %OnAfterDropData
%OnBeforeBuild %OnBeforeDropData %OnCompileDomain %OriginalNamespace
%PackageName %ParseExpression %RemoveFromSaveSet %Rename
%SerializeObject %SetModified %UpdateDictionaries %UpdateMetrics
%ValidateObject

Subclasses

Methods


• classmethod %ApplyDomainParameters() as %Status
Internal method invoking %ApplyDomainParametersInternal using the runtime result of %GetModel
• classmethod %ApplyDomainParametersInternal(pDomain As %iKnow.Model.domain) as %Status
Applies any domain parameters registered as <parameter> elements in the pDomain model passed in.
• final classmethod %Build(pVerbose As %Boolean = 1, ByRef pParams, pAsync As %Boolean = 0) as %Status

Invoking this method will build the domain described in Domain, which includes loading data and dictionaries, matching dictionaries and building metrics, depending on the various settings of the <domain> element and its sub-elements.

The pVerbose argument controls whether status output is provided to stdev (if pAsync=0) or written to a global for GUI pickup (pAsync=1, for internal use only).

• classmethod %CreateDomainClass(pDomDefClassName As %String, pDomain As %iKnow.Model.domain) as %Status
Creates an %iKnow.AbstractDomain class containing utility methods for building the various domain elements described in Domain
• final classmethod %CreateStaticElements(pDomain As %iKnow.Model.domain, pDomainId As %Integer) as %Status
INTERNAL METHOD - DO NOT INVOKE
• final classmethod %DropData(pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 0) as %Status
Drops all non-static data from the domain defined by this class. Depending on the values of pDropDictionaries and pDropBlackLists, dictionary info and blacklists are purged as well.
• final classmethod %DropDomain() as %Status
INTERNAL METHOD - DO NOT INVOKE Drops the underlying domain as part of %iKnow.DomainProjection.RemoveProjection()
• final classmethod %DropManagedConfiguration(pConfigId As %Integer) as %Status
INTERNAL METHOD - DO NOT INVOKE Drops a configuration managed by this domain as part of %iKnow.DomainProjection.RemoveProjection()
• final classmethod %DropManagedUserDictionary(pUserDictId As %Integer) as %Status
INTERNAL METHOD - DO NOT INVOKE Drops a user dictionary managed by this domain as part of %iKnow.DomainProjection.RemoveProjection()
• classmethod %GetCustomizations(Output pCustomizations, Output pMetadata As %List) as %Status
Callback method to define customizations of the generated table structures if objectsPackage'="" See also CreateDomainTables() in %iKnow.Tables.Utils
• classmethod %GetDomainId() as %Integer
Returns the domain ID corresponding to the domain defined in Domain
• classmethod %GetDomainName() as %String
Returns the domain name as defined in Domain
• classmethod %GetExpressionValue(pName As %String, Output pValue As %String, ByRef pParams) as %Status
Evaluates the expression named pName and returns the result by reference.
• final classmethod %GetModel() as %iKnow.Model.domain
Main method to process the contents of Domain at compile-time and return a %iKnow.Model.domain representation of it at runtime, as well as generating a number of other artefacts (code and static iKnow domain entries) for this domain.
• private classmethod %GetParamsAsString(pParams As %ListOfObjects, pWrapList As %Boolean = 0, pDomDefClassName As %String = "", Output pSC As %Status) as %String
• classmethod %IsProperCode(pExpression As %String) as %Boolean
• classmethod %OnAfterBuild(pDomainId As %Integer) as %Status

Callback invoked at the end of %Build. Subclasses can implement this method to execute custom code at the end of a domain build operation.

• classmethod %OnAfterDropData(pDomainId As %Integer, pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 1) as %Status

Callback invoked at the end of %DropData. Subclasses can implement this method to execute custom code at the end of a drop data operation.

• classmethod %OnBeforeBuild(pDomainId As %Integer) as %Status

Callback invoked at the start of %Build. Subclasses can implement this method to execute custom code at the start of a domain build operation.

• classmethod %OnBeforeDropData(pDomainId As %Integer, pDropDictionaries As %Boolean = 1, pDropBlackLists As %Boolean = 1) as %Status

Callback invoked at the start of %DropData. Subclasses can implement this method to execute custom code at the start of a drop data operation.

• classmethod %OnCompileDomain() as %Status
• classmethod %ParseExpression(pDomDefClassName As %String, pExpression As %String, Output pCode As %String, Output pDependencies) as %Status
Returns the code to populate a variable with a value for pExpression. The code returned can be used as if it were a quoted string
• classmethod %Rename(pFrom, pTo) as %Status
Wrapper method to ensure the managing domain definition class will be executing this privileged action.
• final classmethod %UpdateDictionaries(pDropFirst As %Boolean = 0, pMatch As %Boolean = 1, pVerbose As %Boolean = 1, ByRef pParams, pAsync As %Boolean = 0) as %Status

This method will update dictionaries based on the current contents of the <matching> element in Domain, without making any changes to the current data (in terms of sources) already stored in the domain. If pMatch is 1, all sources in the domain will be matched after the dictionaries are updated. If pDropFirst is 1, the current dictionaries will first be dropped from the domain, otherwise only new dictionary entries will be added (no updates or deletions of existing entries).

Build parameters passed through pParams will be used to override default expression values used in the dictionary definitions in the same way as in %Build.

The pVerbose argument controls whether status output is provided to stdev (if pAsync=0) or written to a global for GUI pickup (pAsync=1, for internal use only).

• final classmethod %UpdateMetrics(pDropFirst As %Boolean = 1, pVerbose As %Boolean = 1) as %Status

This method will explicitly rebuild all metrics in the domain described in Domain, optionally dropping any existing values first if pDropFirst is 1.

See also the BuildAll() method in %iKnow.Metrics.MetricBuilder.