%Library.RegisteredObject
abstract class %Library.RegisteredObject extends %Library.Base
For information on this class, see Working with Registered Objects.
The %RegisteredObject class provides the core capabilities needed to manage the in-memory version of an object. Specifically, %RegisteredObject provides the ability to create and destroy object references (OREFs) as well as support for polymorphism. The %RegisteredObject class also provides the ability to swizzle other referenced objects (persistent or serial) into memory.Classes derived directly from %RegisteredObject can be used as transient objects; objects that exist in memory-and can be used from client applications-but are not stored in the database.
Method Inventory
- %AddToSaveSet()
- %ConstructClone()
- %IsModified()
- %NormalizeObject()
- %ObjectModified()
- %RemoveFromSaveSet()
- %SerializeObject()
- %ValidateObject()
Parameters
It can take one of the following values:
0: NoValidate | Perform no automatic property validation. |
1: ValidateOnSet | Perform validation (call the property's ..IsValid method) every time an attribute value is set. |
2: ValidateOnSave | Perform property validation (in the %ValidateObject() method)) when the object is saved. This is only applicable to persistent objects. |
Note: The use of ValidateOnSet is not recommended-it can cause excessive communication between client and server in distributed applications. It is provided for compatability with previous versions.
Methods
This method adds the current object to the SaveSet containing objects that are part of the current %Save() for persistent classes or %GetSwizzleObject for serial classes. A queue of objects to be saved or serialized is also constructed. Only modified objects are included in the save queue. The value (OID or serial value in OID form) of each object is also placed in the SaveSet.
This method will invoke the %OnAddToSaveSet method if it is implemented. See that method for more information.
%AddToSaveSet should not ever be invoked directly except from %OnAddToSaveSet().
This method takes these parameters:
depth, with these values:
1: | Include this object in the SaveSet and, if it has not been serialized put it in the save queue and invoke %AddToSaveSet on any objects referenced by this object to the SaveSet with a depth of 1. |
2: | Include this object in the SaveSet and save queue. Also invoke %AddToSaveSet on any referenced objects in the SaveSet with a depth of 1. |
3: | Include this object in the SaveSet and, if modified, the save queue. Also invoke %AddToSaveSet on any referenced objects in the SaveSet with a depth of 3. |
0: | Add this object to the save set only if it isn't already included. |
1: | Add this object to the SaveSet even if it already exists. This causes object dependencies to be rebuilt. Typically, this value is only passed by %OnAddToSaveSet when it modifies objects other than the current one. |
Note: Swizzled serial objects always have an empty serial value and will always be placed in the save queue and the SaveSet. the value of depth simply gets passed on to its referenced objects.
Note that even if deep=0 when you clone a parent object in a parent child relationship or a one object of a one to many relationship then it will construct clones of all the child/many objects. This is because a child/many object can only point at a single parent and so if we did not create a clone of these then you would have a relationship with zero items in it. If you really just want to clone the object without these child/many objects then pass deep=-1 to this method.
After the clone is constructed it will call %OnConstructClone(object,deep,.cloned) on the clone if it is defined so that you can perform any additional steps e.g. taking out a lock. This works just the same way as %OnNew() does.
The object is the oref of the original object that was cloned. The cloned array is just used internally when doing a deep clone to prevent recursive loops, do not pass anything in at all for this parameter on the initial call. If you write a %OnConstructClone and from here you wish to call %ConstructClone on another object pass in the cloned array, e.g. 'Do oref.%ConstructClone(1,.cloned)' so that it can prevent recursive loops.
The location is used internally to pass the new location for stream objects.
This method removes the current object from the SaveSet. If this object is also in the save queue it is removed from there as well.
This method is not meant to be called directly. It is called by %Save and by %GetSwizzleObject.
This method validates an object.
The %Save() method of a persistent class calls this method before filing any objects in the database. The %ValidateObject() of a referencing object can call it. You can also call it explicitly at any time.
%ValidateObject() does the following:
- If present, it will call a user-supplied %OnValidateObject() method.
- It checks if any required property values are missing.
- If the PROPERTYVALIDATION class parameter is set to ValidateOnSave, it validates each non-null property value by calling the property method IsValid on each literal property and the %ValidateObject method for each object-valued embedded object property (properties whose type extend %SerialObject).
- If checkserial is 1, it forces the checking of any embedded object properties by calling their %ValidateObject method after swizzling this property.
- If checkserial is 2, it forces the checking of any collections of serial types by iterating over those collections and calling their %ValidateObject() method after swizzling this property, in addition to the validation that occurs when checkserial is 1.
%ValidateObject() returns a %Status indicating success or error. It is up to the caller to process the error value.
%ValidateObject() does not validate object-valued reference properties (properties whose type extends %Persistent) due to the possibility of circular dependencies between objects. The %Save() method of a persistent class automatically detects and handles circular references between objects. If you require the validation of reference properties, you can override this method in a subclass or call %Save() directly.
Inherited Members
Inherited Methods
Subclasses
- %Archive.Content
- %Archive.Session
- %CSP.AbstractAtom
- %CSP.Apps
- %CSP.CompilerContext
- %CSP.DwxQuery
- %CSP.Endpoint
- %CSP.HTMLEscape
- %CSP.Mgr.GatewayInformation
- %CSP.Mgr.GatewaySystemStatus
- %CSP.Monitor.Matrix
- %CSP.PageBuilder
- %CSP.PageSection
- %CSP.Portal.SourceControl.IO
- %CSP.Portal.Utils
- %CSP.Request
- %CSP.Response
- %CSP.RuleMgr
- %CSP.SessionEvents
- %CSP.TokenStream
- %CSP.UI.Portal.SQL.Utils
- %CSP.UI.Portal.Sharding.Utils
- %CSP.UI.SQL.QueryForm
- %CSP.UI.SQL.TableForm
- %CSP.UI.System.AuditUtils
- %CSP.UI.System.BackgroundTask
- %CSP.UI.System.Index
- %CSP.UI.System.Utils
- %CSP.UserAgent
- %CSP.Util.AutoFormDynamic
- %CSP.Util.AutoFormGenerator
- %CSP.Util.FieldDefinition
- %CSP.Util.HTMLMeter
- %CSP.Util.PageInstance
- %CSP.Util.Pane
- %CSP.Util.TableForm
- %CSP.WebSocket
- %Collection.Super
- %DeepSee.Aggregate.aggregate
- %DeepSee.ClassQueries
- %DeepSee.ComputedDimension.Base
- %DeepSee.Connector.Generator
- %DeepSee.Connector.abstractNode
- %DeepSee.CubeDefinition
- %DeepSee.CubeManager.RegistryDefinitionSuper
- %DeepSee.CubeManager.RegistryMap
- %DeepSee.CubeManager.RegistryMapCube
- %DeepSee.CubeManager.RegistryMapGroup
- %DeepSee.CubeManager.RegistryMapSubjectArea
- %DeepSee.CubeManager.Utils
- %DeepSee.CubeVersion.Utils
- %DeepSee.Dashboard.Element
- %DeepSee.Dashboard.Utils
- %DeepSee.DataConnector
- %DeepSee.Generator
- %DeepSee.ListingGroup
- %DeepSee.ListingGroupDefinition
- %DeepSee.Model.SubjectArea.abstractNode
- %DeepSee.Model.abstractNode
- %DeepSee.PMML.Dataset
- %DeepSee.PMML.Definition.abstractNode
- %DeepSee.PMML.Model.AbstractModel
- %DeepSee.PMML.Utils.Result
- %DeepSee.PMML.Utils.TreeBuilder
- %DeepSee.QualityMeasure.QualityMeasure
- %DeepSee.QualityMeasure.Utils
- %DeepSee.Query.Engine
- %DeepSee.Query.Engine2
- %DeepSee.Query.Parser
- %DeepSee.Query.member
- %DeepSee.Query.node
- %DeepSee.Query.scalarFunction
- %DeepSee.QueryTest
- %DeepSee.SQL.Parser
- %DeepSee.Session
- %DeepSee.Shell
- %DeepSee.SubjectArea
- %DeepSee.TermList
- %DeepSee.TestSpec
- %DeepSee.Time.AbstractLevel
- %DeepSee.UserLibrary.Container
- %DeepSee.UserLibrary.TermList
- %DeepSee.UserLibrary.Utils
- %DeepSee.UserPortal.Utils
- %DeepSee.UserPortal.WorkList
- %DeepSee.Utils
- %DeepSee.WorkMgr
- %DeepSee.WorksheetEngine
- %DeepSee.XMLA.DataSourcesRestrictions
- %DeepSee.XMLA.EnumerationsRestrictions
- %DeepSee.XMLA.ExecuteCommand
- %DeepSee.XMLA.KeywordsRestrictions
- %DeepSee.XMLA.LiteralsRestrictions
- %DeepSee.XMLA.Properties
- %DeepSee.XMLA.PropertiesRestrictions
- %DeepSee.XMLA.PropertyList
- %DeepSee.XMLA.SchemasRestrictions
- %DeepSee.extensions.StudentDistribution
- %DeepSee.extensions.clusters.ASW
- %DeepSee.extensions.clusters.AbstractModel
- %DeepSee.extensions.clusters.CalinskiHarabasz
- %DeepSee.extensions.clusters.Ordered
- %DeepSee.extensions.clusters.PearsonGamma
- %DeepSee.extensions.modelling.Call
- %DeepSee.extensions.modelling.ContributionReport
- %DeepSee.extensions.modelling.LDA
- %DeepSee.extensions.modelling.NaiveBayes
- %DeepSee.extensions.modelling.PCA
- %DeepSee.extensions.modelling.Processor
- %DeepSee.extensions.modelling.conf.Model
- %DeepSee.extensions.stat.ExpDistribution
- %DeepSee.extensions.stat.MixedDistribution
- %DeepSee.extensions.stat.NormalDistribution
- %DeepSee.extensions.utils.Jacobi
- %DeepSee.extensions.utils.MatrixArithmetics
- %DeepSee.extensions.utils.OLS
- %DeepSee.extensions.utils.SimpleRegression
- %DeepSee.extensions.utils.StringMatchUtils
- %Dictionary.RoseLinkUtility
- %Embedding.Interface
- %Embedding.TextSplitter
- %External.Messaging.Client
- %External.Messaging.Message
- %External.Messaging.Settings
- %Installer.AbstractLogger
- %Installer.Component
- %Installer.Installer
- %JSON.Formatter
- %JSON.Mapping
- %JSON.MappingProperty
- %Library.COSCallout
- %Library.Compiler.Basic
- %Library.Destroyer
- %Library.Function
- %Library.GTWConnection
- %Library.IResultSet
- %Library.MessageDictionary
- %Library.PropertyHelper
- %Library.RoutineMgr
- %Library.SQLCatalog
- %Library.SQLExportMgr
- %Library.SQLGatewayConnection
- %Library.SQLImportMgr
- %Library.SwizzleObject
- %Library.SyntaxColor
- %Library.SyntaxColorReader
- %Library.TriggerHelper
- %MFT.API
- %Monitor.Adaptor
- %Monitor.Manager
- %Monitor.System.LineByLine
- %Monitor.View
- %Net.Authenticator
- %Net.Bonjour
- %Net.BonjourServiceReference
- %Net.BonjourTXTRecord
- %Net.Cloud.Storage.BlobInfo
- %Net.Cloud.Storage.BucketInfo
- %Net.Cloud.Storage.Client
- %Net.DB.Connection
- %Net.DB.Iris
- %Net.FetchMailProtocol
- %Net.FtpCallback
- %Net.FtpSession
- %Net.HttpRequest
- %Net.HttpResponse
- %Net.JSON.JOSE
- %Net.JSON.JWA
- %Net.JSON.JWE
- %Net.JSON.JWK
- %Net.JSON.JWKS
- %Net.JSON.JWS
- %Net.JSON.JWT
- %Net.LDAP.Client.EditEntry
- %Net.LDAP.Client.Entries
- %Net.LDAP.Client.Entry
- %Net.LDAP.Client.PropList
- %Net.LDAP.Client.Session
- %Net.LDAP.Client.StringList
- %Net.LDAP.Client.ValueList
- %Net.MIMEPart
- %Net.MIMEReader
- %Net.MIMEWriter
- %Net.MQTT.Client
- %Net.MQTT.Logger
- %Net.OpenAM.tns.AccessDenied
- %Net.OpenAM.tns.DuplicateObject
- %Net.OpenAM.tns.GeneralFailure
- %Net.OpenAM.tns.InvalidCredentials
- %Net.OpenAM.tns.InvalidPassword
- %Net.OpenAM.tns.InvalidToken
- %Net.OpenAM.tns.NeedMoreCredentials
- %Net.OpenAM.tns.ObjectNotFound
- %Net.OpenAM.tns.TokenExpired
- %Net.OpenAM.tns.UserNotFound
- %Net.OpenAM.tns.attribute
- %Net.OpenAM.tns.identityDetails
- %Net.OpenAM.tns.token
- %Net.OpenAM.tns.userDetails
- %Net.PushNotifications.APNS
- %Net.PushNotifications.GCM
- %Net.Remote.Gateway
- %Net.Remote.ImportHelper
- %Net.Remote.Java.XSLTGatewayRequest
- %Net.Remote.Object
- %Net.Remote.Proxy
- %Net.Remote.Service
- %Net.Remote.Utility
- %Net.SASL.Base
- %Net.SMTP
- %Net.SSH.SFTP
- %Net.SSH.Session
- %Net.UDP
- %Net.URLParser
- %Net.WebSocket.Client
- %Net.WebSocket.Frame
- %Net.X509Certificate
- %Net.abstractMQ
- %OAuth2.JWK
- %OAuth2.JWKS
- %OAuth2.JWT
- %OAuth2.Server.Generate
- %OAuth2.Server.Revoke
- %OAuth2.Server.Validate
- %OAuth2.Utils
- %REST.API
- %REST.Application
- %REST.Impl
- %Regex.Matcher
- %SAML.Action
- %SAML.AssertionReference
- %SAML.Attribute
- %SAML.AttributeValue
- %SAML.AttributeValueAbstract
- %SAML.AttributeValueElement
- %SAML.AuthnContext
- %SAML.AuthnContextDecl
- %SAML.AuthnContextDeclRef
- %SAML.BaseID
- %SAML.Condition
- %SAML.Conditions
- %SAML.EncryptedElement
- %SAML.Evidence
- %SAML.Statement
- %SAML.Subject
- %SAML.SubjectConfirmation
- %SAML.SubjectConfirmationData
- %SAML.SubjectLocality
- %SOAP.Addressing.Properties
- %SOAP.Configuration
- %SOAP.Descriptor
- %SOAP.Fault
- %SOAP.Fault12
- %SOAP.Fault12.Code
- %SOAP.Fault12.Text
- %SOAP.Header
- %SOAP.PolicyReference
- %SOAP.RM.Accept
- %SOAP.RM.AcknowledgementRange
- %SOAP.RM.CloseSequenceResponse
- %SOAP.RM.CreateSequenceResponse
- %SOAP.RM.Offer
- %SOAP.RM.TerminateSequenceResponse
- %SOAP.RequestMessage
- %SOAP.Security.Element
- %SOAP.Security.IssuerSerial
- %SOAP.Security.KeyIdentifier
- %SOAP.Security.Reference
- %SOAP.Security.TransformationParameters
- %SOAP.WSDL.Reader
- %SOAP.WSSC.Properties
- %SOAP.WST.AbstractToken
- %SOAP.WST.Claims
- %SOAP.WST.Entropy
- %SOAP.WST.Lifetime
- %SOAP.WST.Participants
- %SOAP.WST.Renewing
- %SOAP.WST.RequestSecurityTokenResponse
- %SOAP.WST.RequestSecurityTokenResponseCollection
- %SOAP.WST.RequestedProofToken
- %SOAP.WST.RequestedSecurityToken
- %SOAP.WST.Status
- %SOAP.WST.Target
- %SOAP.WebBase
- %SOAP.WebParameters
- %SQL.AbstractFind
- %SQL.Export.Mgr
- %SQL.FDW.Abstract
- %SQL.HLL
- %SQL.Import.Mgr
- %SQL.Manager.Wizard.Util
- %SQL.Migration.Import
- %SQL.Migration.Util
- %SQL.Shell
- %SQL.Statement
- %SQL.StatementMetadata
- %SQL.StatementResult
- %SQL.Util.TuneTableStats
- %SQL.Util.TuneTableStatsFields
- %SQL.Util.TuneTableStatsMaps
- %SYS.ClusterInfo
- %SYS.DBSRV
- %SYS.Date.SlidingWindow
- %SYS.Execute
- %SYS.Journal.History
- %SYS.Journal.System
- %SYS.Monitor.AbstractNotification
- %SYS.Monitor.AbstractSensor
- %SYS.Monitor.AbstractSubscriber
- %SYS.Monitor.Email
- %SYS.NLS.Device
- %SYS.NLS.Format
- %SYS.NLS.Locale
- %SYS.NLS.Table
- %SYS.OAuth2.AccessToken
- %SYS.OAuth2.Authorization
- %SYS.OAuth2.Registration
- %SYS.OAuth2.Validation
- %SYS.Python.IteratorHelper
- %SYS.Python.SQL
- %SYS.Python.SQLResultSet
- %SYS.Python.SQLStatement
- %SYS.Python.StreamIterator
- %SYS.Python.Utils
- %SYS.REST
- %SYS.RMSession
- %SYS.SecurityContextToken
- %SYS.Studio.DocumentHistory
- %SYS.Task.Definition
- %SYS.Task.Init
- %SYS.WhitelistUtils
- %SYSTEM.CPU
- %SYSTEM.Context.DeviceRedirect
- %SYSTEM.Context.SN
- %SYSTEM.Error
- %Stream.Interface
- %Stream.Object
- %Studio.Debugger
- %Studio.Extension.Base
- %Studio.Global
- %Studio.SASchemaUtil
- %Studio.SourceControl.CCREventHandler
- %UnitTest.Manager
- %UnitTest.TestCase
- %WebStress.Control.ValidData.Request
- %WebStress.HttpResponse
- %WebStress.Results.Parameters
- %XDBC.Gateway.DatabaseMetaData
- %XDBC.Gateway.ParameterMetaData
- %XDBC.Gateway.ResultSet
- %XDBC.Gateway.ResultSetMetaData
- %XDBC.Gateway.Statement
- %XML.CatalogParser
- %XML.CatalogResolver
- %XML.Element
- %XML.ElementExtension
- %XML.Exchange
- %XML.Exchange.ChangeControlBase
- %XML.Exchange.Metadata
- %XML.Implementation
- %XML.Namespaces
- %XML.Node
- %XML.Reader
- %XML.SAX.ContentHandler
- %XML.SAX.EntityResolver
- %XML.SAX.Parser
- %XML.SAX.StreamAdapter
- %XML.SAX.Utils.Replayer
- %XML.Schema
- %XML.Security.CipherData
- %XML.Security.CipherDataStream
- %XML.Security.CipherReference
- %XML.Security.DSAKeyValue
- %XML.Security.DataReference
- %XML.Security.EncryptionMethod
- %XML.Security.EncryptionProperties
- %XML.Security.EncryptionProperty
- %XML.Security.InclusiveNamespaces
- %XML.Security.KeyInfo
- %XML.Security.KeyInfoClause
- %XML.Security.KeyReference
- %XML.Security.Object
- %XML.Security.RSAKeyValue
- %XML.Security.Reference
- %XML.Security.RetrievalMethod
- %XML.Security.SignedInfo
- %XML.Security.Transform
- %XML.Security.X509DataElement
- %XML.TextReader
- %XML.Utils.SchemaReader
- %XML.Utils.SchemaResult
- %XML.Writer
- %XML.XPATH.Document
- %XML.XPATH.Reader
- %XML.XPATH.ResultHandler
- %XML.XSLT.CallbackHandler
- %XML.XSLT.CompiledStyleSheet
- %XML.XSLT.ErrorHandler
- %XML.XSLT.StreamAdapter
- %XML.XSLT.Transformer
- %XML.XSLT2.CompiledStyleSheet
- %XML.XSLT2.Transformer
- %XML.XSLT3.CompiledPackage
- %XML.XSLT3.CompiledStyleSheet
- %XML.XSLT3.Transformer
- %ZEN.Auxiliary.NodeInfo
- %ZEN.Auxiliary.QueryInfo
- %ZEN.Component.object
- %ZEN.DataModel.AbstractDocument
- %ZEN.DataModel.DataModel
- %ZEN.DataModel.DocumentUtils
- %ZEN.DataModelUtils
- %ZEN.FinderUtils
- %ZEN.Generator
- %ZEN.Mobile.RSS.API
- %ZEN.Portal.ContextSearch
- %ZEN.Portal.Utils
- %ZEN.Report.DataCache
- %ZEN.Report.Display.COSChart.CellInfo
- %ZEN.Report.Display.COSChart.Date
- %ZEN.Report.Display.COSChart.Helpers.IndexedEvent
- %ZEN.Report.Display.COSChart.Helpers.SortedEvents
- %ZEN.Report.Display.COSChart.Helpers.TimeEvent
- %ZEN.Report.Display.COSChart.bbox
- %ZEN.Report.Display.COSChart.dataBag
- %ZEN.Report.Display.COSChart.dataItem
- %ZEN.Report.Display.COSChart.dataItemBullsEye
- %ZEN.Report.Display.COSChart.dsFormulaEngine
- %ZEN.Report.Display.COSChart.dsFormulaParser
- %ZEN.Report.Display.COSChart.extent
- %ZEN.Report.Display.COSChart.function
- %ZEN.Report.Display.COSChart.node
- %ZEN.Report.Display.COSChart.parseTreeNode
- %ZEN.Report.Display.COSChart.range
- %ZEN.Report.Display.COSChart.stack
- %ZEN.Report.Display.COSChart.styleNVP
- %ZEN.Report.Display.COSChart.token
- %ZEN.Report.Display.Chart.chartUtil
- %ZEN.Report.Display.Chart.plot
- %ZEN.Report.Display.common
- %ZEN.Report.Display.reportTemplate
- %ZEN.Report.Display.version86
- %ZEN.Report.Models.Group.Document
- %ZEN.Report.Models.Group.Group
- %ZEN.Report.Models.Group.Report
- %ZEN.Report.Models.Group.Utils
- %ZEN.Report.Ping
- %ZEN.Report.RecordCounter
- %ZEN.Report.RenderController
- %ZEN.Report.Semaphore
- %ZEN.Report.SplitAndMerge
- %ZEN.Report.defaultApplication
- %ZEN.Report.hotPrint
- %ZEN.Report.parameter
- %ZEN.Report.pivotTableGenerator
- %ZEN.Report.reportDataClasses
- %ZEN.Report.reportGenerator
- %ZEN.Report.reportNode
- %ZEN.Report.reportPage
- %ZEN.Report.streamTransformer
- %ZEN.SVGComponent.svgPage
- %ZEN.Submit
- %ZEN.Template.PageGeneratorInfo
- %ZEN.Template.ZENPageList
- %ZEN.TreeUtils
- %ZEN.Utils
- %ZEN.application
- %ZEN.proxyObject
- %ZEN.proxyObjectEnumeratee
- %ZHS.FHIRSQL.Utils
- %ZHSLIB.Component
- %ZHSLIB.Context.InitializerBase
- %ZHSLIB.Context.Manager
- %ZHSLIB.Context.NamedInstanceBase
- %ZHSLIB.Context.ServiceBase
- %ZHSLIB.LockManager
- %ZHSLIB.Login.LoginData
- %ZHSLIB.Services.NVPair
- %ZHSLIB.UsersAndRoles
- %iFind.Transformation.Abstract
- %iKnow.Classification.Builder
- %iKnow.Classification.Classifier
- %iKnow.Classification.Definition.node
- %iKnow.Classification.Methods.Base
- %iKnow.Classification.Optimizer
- %iKnow.Compiler.GotoFunction
- %iKnow.DeepSee.CubeUtils
- %iKnow.DomainDefinition
- %iKnow.Filters.Filter
- %iKnow.Matching.Formats.Format
- %iKnow.Metrics.MetricBuilder
- %iKnow.Metrics.MetricDefinition
- %iKnow.Queries.MetadataI
- %iKnow.Queries.Utils
- %iKnow.Shell.Command
- %iKnow.Source.Converter
- %iKnow.Source.Lister
- %iKnow.Source.Loader
- %iKnow.Source.Processor
- %iKnow.TextTransformation.Definition
- %iKnow.TextTransformation.Output
- %iKnow.Utils.CopyUtils
- %iKnow.Utils.UpgradeUtils
- Config.CommonMethods
- Journal.Restore
- MonitorTools.SNMP
- OAuth2.Metadata
- OAuth2.Server.Introspection
- OAuth2.Server.Logout
- OAuth2.Server.OpenID
- OAuth2.Server.Registration
- OAuth2.Server.Token
- OAuth2.Server.Userinfo
- SYS.Agent
- SYS.ArchiveManager
- SYS.Cluster
- SYS.Container
- SYS.Monitor.DashboardExporter
- SYS.Monitor.DashboardInstaller
- SYS.Stats.Manager
- SYS.WSMon.wsEvent
- SYS.WSMon.wsResource