Note about Info Objects
Several methods in this class return info objects that describe a property, aggregation, association or event of the class described by this metadata object. The type, structure and behavior of these info objects is not yet documented and not part of the stable, public API.
Code using such methods and the returned info objects therefore needs to be aware of the following restrictions:
Properties that represent settings provided during class definition (in the oClassInfo parameter of the 'extend' call, e.g. 'type', 'multiple' of an aggregation) are more likely to stay the same than additional, derived properties like '_iKind'.
Creates a new metadata object that describes a subclass of ManagedObject.
Note: Code outside the sap.ui.base
namespace must not call this constructor directly. Instances will be created automatically when a new class is defined with one of the SomeClass.extend methods.
Note: throughout this class documentation, the described subclass of ManagedObject is referenced as the described class.
new sap.ui.base.ManagedObjectMetadata(sClassName, oClassInfo)
Param | Type | Default Value | Description |
---|---|---|---|
sClassName | string | fully qualified name of the described class |
|
oClassInfo | object | static info to construct the metadata from |
Method | Description |
---|---|
sap.ui.base.ManagedObjectMetadata.addAPIParentInfoBegin |
Adds information to the given oAggregatedObject about its original API parent (or a subsequent API parent in case of multiple forwarding). MUST be called before an element is forwarded to another internal aggregation (in case forwarding is done explicitly/manually without using the declarative mechanism introduced in UI5 1.56). CAUTION: ManagedObjectMetadata.addAPIParentInfoEnd(...) MUST be called AFTER the element has been forwarded (set to an aggregation of an internal control). These two calls must wrap the forwarding. |
sap.ui.base.ManagedObjectMetadata.addAPIParentInfoEnd |
Completes the information about the original API parent of the given element. MUST be called after an element is forwarded to another internal aggregation. For every call to ManagedObjectMetadata.addAPIParentInfoBegin(...) this method here must be called as well. |
forwardAggregation |
Defines that an aggregation This means that all adding, removal, or other operations happening on the source aggregation are actually called on the target instance. All elements added to the source aggregation will be located at the target aggregation (this means the target instance is their parent). Both, source and target element will return the added elements when asked for the content of the respective aggregation. If present, the named (non-generic) aggregation methods will be called for the target aggregation. When the source aggregation is bound, the binding will by default take place there and the add/remove operations will be forwarded to the target. However, optionally the binding can also be forwarded. The result is similar - all added/bound items will reside at the target - but when the binding is forwarded, the updateAggregation method is called on the target element and the add/remove methods are only called on the target element as well. Aggregations can only be forwarded to other aggregations of the same multiplicity (single/multiple). The target aggregation must also be "compatible" to the source aggregation in the sense that any items given to the source aggregation must also be valid in the target aggregation (otherwise the target element will throw a validation error). If the forwarded elements use data binding, the target element must be properly aggregated by the source element to make sure all models are available there as well (this is anyway important to avoid issues). The aggregation target must remain the same instance across the entire lifetime of the source control. Aggregation forwarding must be set up before any instances of the control are created (recommended: within the class definition) to avoid situations where forwarding is not yet set up when the first aggregated item is added. Aggregation forwarding will behave unexpectedly when the content in the target aggregation is modified by other actors (e.g. by the target element or by another forwarding from a different source aggregation). Hence, this is not allowed. For any given source aggregation this method may only be called once. Calling it again overrides the previous forwarding, but leaves any already forwarded elements at their previous target. |
getAggregation |
Returns an info object for the named public aggregation of the described class no matter whether the aggregation was defined by the class itself or by one of its ancestor classes. If neither the class nor its ancestor classes define a public aggregation with the given name, If the name is not given (or has a falsy value), then it is substituted by the name of the default aggregation of the 'described class' (if any). Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAggregations |
Returns a map of info objects for the public aggregations of the described class. Aggregations declared by ancestor classes are not included. The returned map keys the aggregation info objects by their name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllAggregations |
Returns a map of info objects for all public aggregations of the described class, including public aggregations form the ancestor classes. The returned map keys the aggregation info objects by their name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllAssociations |
Returns a map of info objects for all public associations of the described class, including public associations form the ancestor classes. The returned map keys the association info objects by their name. In case of 0..1 associations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllEvents |
Returns a map of info objects for all public events of the described class, including public events form the ancestor classes. The returned map keys the event info objects by their name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllPrivateAggregations |
Returns a map of info objects for all private (hidden) aggregations of the described class, including private aggregations from the ancestor classes. The returned map contains aggregation info objects keyed by the aggregation name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllPrivateAssociations |
Returns a map of info objects for all private (hidden) associations of the described class, including private associations from the ancestor classes. The returned map contains association info objects keyed by the association name. In case of 0..1 associations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllPrivateProperties |
Returns a map of info objects for all private (hidden) properties of the described class, including private properties from the ancestor classes. The returned map contains property info objects keyed by the property name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAllProperties |
Returns a map of info objects for all public properties of the described class, including public properties from the ancestor classes. The returned map keys the property info objects by their name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAssociation |
Returns an info object for the named public association of the described class, no matter whether the association was defined by the class itself or by one of its ancestor classes. If neither the described class nor its ancestor classes define an association with the given name, Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getAssociations |
Returns a map of info objects for all public associations of the described class. Associations declared by ancestor classes are not included. The returned map keys the association info objects by their name. In case of 0..1 associations this is the singular name, otherwise it is the plural name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getDefaultAggregation |
Returns an info object for the default aggregation of the described class. If the class itself does not define a default aggregation, then the info object for the default aggregation of the parent class is returned. |
getDefaultAggregationName |
Returns the name of the default aggregation of the described class. If the class itself does not define a default aggregation, then the default aggregation of the parent is returned. If no class in the hierarchy defines a default aggregation, |
getEvent |
Returns an info object for the named public event of the described class, no matter whether the event was defined by the class itself or by one of its ancestor classes. If neither the described class nor its ancestor classes define an event with the given name, Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getEvents |
Returns a map of info objects for the public events of the described class. Events declared by ancestor classes are not included. The returned map keys the event info objects by their name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getLibraryName |
Returns the name of the library that contains the described UIElement. |
getManagedAggregation |
Returns the info object for the named public or private aggregation declared by the described class or by any of its ancestors. If the name is not given (or has a falsy value), then it is substituted by the name of the default aggregation of the described class (if it is defined). Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getManagedAssociation |
Returns the info object for the named public or private association declared by the described class or by any of its ancestors. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getManagedProperty |
Returns the info object for the named public or private property declared by the described class or by any of its ancestors. If the name is not given (or has a falsy value), then it is substituted by the name of the default property of the described class (if it is defined). Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getProperties |
Returns a map of info objects for the public properties of the described class. Properties declared by ancestor classes are not included. The returned map keys the property info objects by their name. Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getProperty |
Returns an info object for the named public property of the described class, no matter whether the property was defined by the class itself or by one of its ancestor classes. If neither the described class nor its ancestor classes define a property with the given name, Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
getPropertyDefaults |
Returns a map of default values for all properties declared by the described class and its ancestors, keyed by the property name. |
getPropertyLikeSetting |
Returns an info object for a public setting with the given name that either is a public property or a public aggregation of cardinality 0..1 and with at least one simple alternative type. The setting can be defined by the class itself or by one of its ancestor classes. If neither the described class nor its ancestor classes define a suitable setting with the given name, Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class. |
hasAggregation |
Checks the existence of the given public aggregation by its name. |
hasAssociation |
Checks the existence of the given public association by its name |
hasEvent |
Checks the existence of the given event by its name |
hasProperty |
Checks the existence of the given public property by its name |
sap.ui.base.ManagedObjectMetadata.isGeneratedId |
Test whether a given ID looks like it was automatically generated. Examples: True for: "foo--__bar04--baz" "foo--__bar04" "__bar04--baz" "__bar04" "__bar04--" "__bar04--foo" False for: "foo__bar04" "foo__bar04--baz" See sap.ui.base.ManagedObjectMetadata.prototype.uid for details on ID generation. |
loadDesignTime |
Load and returns the design time metadata asynchronously. It inherits/merges parent design time metadata and if provided merges also instance specific design time metadata that was provided via the dt namespace. Be aware that ManagedObjects do not ensure to have unique IDs. This may lead to issues if you would like to persist DesignTime based information. In that case you need to take care of identification yourself. |
sap.ui.base.ManagedObjectMetadata.setDesignTimeDefaultMapping |
Sets the map with the module names to predefined DesignTime objects which will be available in sap.ui.base.ManagedObjectMetadata.prototype.loadDesignTime |
uid |
Calculates a new ID for an instance of this class. Note that the calculated short name part is usually not unique across all classes, but doesn't have to be. It might even be empty when the class name consists of invalid characters only. |
sap.ui.base.ManagedObjectMetadata.uid |
Calculates a new ID based on a prefix. To guarantee uniqueness of the generated IDs across all ID prefixes, prefixes must not end with digits. |
Adds information to the given oAggregatedObject about its original API parent (or a subsequent API parent in case of multiple forwarding). MUST be called before an element is forwarded to another internal aggregation (in case forwarding is done explicitly/manually without using the declarative mechanism introduced in UI5 1.56).
CAUTION: ManagedObjectMetadata.addAPIParentInfoEnd(...) MUST be called AFTER the element has been forwarded (set to an aggregation of an internal control). These two calls must wrap the forwarding.
Param | Type | DefaultValue | Description |
---|---|---|---|
oAggregatedObject | sap.ui.base.ManagedObject |
Object to which the new API parent info should be added |
|
oParent | sap.ui.base.ManagedObject |
Object that is a new API parent |
|
sAggregationName | string |
the name of the aggregation under which oAggregatedObject is aggregated by the API parent |
Completes the information about the original API parent of the given element. MUST be called after an element is forwarded to another internal aggregation. For every call to ManagedObjectMetadata.addAPIParentInfoBegin(...) this method here must be called as well.
Param | Type | DefaultValue | Description |
---|---|---|---|
oAggregatedObject | sap.ui.base.ManagedObject |
Object to which the new API parent info should be added |
Defines that an aggregation sForwardedSourceAggregation
of the ManagedObject described by this metadata should be "forwarded" to an aggregation of an internal element within the composite.
This means that all adding, removal, or other operations happening on the source aggregation are actually called on the target instance. All elements added to the source aggregation will be located at the target aggregation (this means the target instance is their parent). Both, source and target element will return the added elements when asked for the content of the respective aggregation. If present, the named (non-generic) aggregation methods will be called for the target aggregation.
When the source aggregation is bound, the binding will by default take place there and the add/remove operations will be forwarded to the target. However, optionally the binding can also be forwarded. The result is similar - all added/bound items will reside at the target - but when the binding is forwarded, the updateAggregation method is called on the target element and the add/remove methods are only called on the target element as well.
Aggregations can only be forwarded to other aggregations of the same multiplicity (single/multiple). The target aggregation must also be "compatible" to the source aggregation in the sense that any items given to the source aggregation must also be valid in the target aggregation (otherwise the target element will throw a validation error).
If the forwarded elements use data binding, the target element must be properly aggregated by the source element to make sure all models are available there as well (this is anyway important to avoid issues).
The aggregation target must remain the same instance across the entire lifetime of the source control.
Aggregation forwarding must be set up before any instances of the control are created (recommended: within the class definition) to avoid situations where forwarding is not yet set up when the first aggregated item is added.
Aggregation forwarding will behave unexpectedly when the content in the target aggregation is modified by other actors (e.g. by the target element or by another forwarding from a different source aggregation). Hence, this is not allowed.
For any given source aggregation this method may only be called once. Calling it again overrides the previous forwarding, but leaves any already forwarded elements at their previous target.
Param | Type | DefaultValue | Description |
---|---|---|---|
sForwardedSourceAggregation | string |
The name of the aggregation to be forwarded |
|
mOptions | object |
The forwarding target as well as additional options |
|
getter | string function |
The function that returns the target element instance (the "this" context inside the function is the source instance), or the name of such a function on this ManagedObject type. Either getter or idSuffix (but not both) must be defined. |
|
idSuffix | string |
The ID suffix of the target element (the full target ID is the source instance ID plus this suffix, the target element must always be instantiated after the init() method has been executed). Either getter or idSuffix (but not both) must be defined. |
|
aggregation | string |
The name of the aggregation on the target instance where the forwarding should lead to |
|
forwardBinding | boolean |
Whether a binding of the source aggregation should also be forwarded to the target aggregation or rather handled on the source aggregation, so only the resulting aggregation method calls are forwarded |
Returns an info object for the named public aggregation of the described class no matter whether the aggregation was defined by the class itself or by one of its ancestor classes.
If neither the class nor its ancestor classes define a public aggregation with the given name, undefined
is returned.
If the name is not given (or has a falsy value), then it is substituted by the name of the default aggregation of the 'described class' (if any).
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the aggregation or empty |
Returns a map of info objects for the public aggregations of the described class. Aggregations declared by ancestor classes are not included.
The returned map keys the aggregation info objects by their name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all public aggregations of the described class, including public aggregations form the ancestor classes.
The returned map keys the aggregation info objects by their name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all public associations of the described class, including public associations form the ancestor classes.
The returned map keys the association info objects by their name. In case of 0..1 associations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all public events of the described class, including public events form the ancestor classes.
The returned map keys the event info objects by their name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all private (hidden) aggregations of the described class, including private aggregations from the ancestor classes.
The returned map contains aggregation info objects keyed by the aggregation name. In case of 0..1 aggregations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all private (hidden) associations of the described class, including private associations from the ancestor classes.
The returned map contains association info objects keyed by the association name. In case of 0..1 associations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all private (hidden) properties of the described class, including private properties from the ancestor classes.
The returned map contains property info objects keyed by the property name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns a map of info objects for all public properties of the described class, including public properties from the ancestor classes.
The returned map keys the property info objects by their name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns an info object for the named public association of the described class, no matter whether the association was defined by the class itself or by one of its ancestor classes.
If neither the described class nor its ancestor classes define an association with the given name, undefined
is returned.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the association |
Returns a map of info objects for all public associations of the described class. Associations declared by ancestor classes are not included.
The returned map keys the association info objects by their name. In case of 0..1 associations this is the singular name, otherwise it is the plural name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns an info object for the default aggregation of the described class.
If the class itself does not define a default aggregation, then the info object for the default aggregation of the parent class is returned.
Returns the name of the default aggregation of the described class.
If the class itself does not define a default aggregation, then the default aggregation of the parent is returned. If no class in the hierarchy defines a default aggregation, undefined
is returned.
Returns an info object for the named public event of the described class, no matter whether the event was defined by the class itself or by one of its ancestor classes.
If neither the described class nor its ancestor classes define an event with the given name, undefined
is returned.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the event |
Returns a map of info objects for the public events of the described class. Events declared by ancestor classes are not included.
The returned map keys the event info objects by their name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns the info object for the named public or private aggregation declared by the described class or by any of its ancestors.
If the name is not given (or has a falsy value), then it is substituted by the name of the default aggregation of the described class (if it is defined).
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sAggregationName | string |
name of the aggregation to be retrieved or empty |
Returns the info object for the named public or private association declared by the described class or by any of its ancestors.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the association to be retrieved |
Returns the info object for the named public or private property declared by the described class or by any of its ancestors.
If the name is not given (or has a falsy value), then it is substituted by the name of the default property of the described class (if it is defined).
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the property to be retrieved or empty |
Returns a map of info objects for the public properties of the described class. Properties declared by ancestor classes are not included.
The returned map keys the property info objects by their name.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Returns an info object for the named public property of the described class, no matter whether the property was defined by the class itself or by one of its ancestor classes.
If neither the described class nor its ancestor classes define a property with the given name, undefined
is returned.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the property |
Returns a map of default values for all properties declared by the described class and its ancestors, keyed by the property name.
Returns an info object for a public setting with the given name that either is a public property or a public aggregation of cardinality 0..1 and with at least one simple alternative type. The setting can be defined by the class itself or by one of its ancestor classes.
If neither the described class nor its ancestor classes define a suitable setting with the given name, undefined
is returned.
Warning: Type, structure and behavior of the returned info objects is not documented and therefore not part of the API. See the Notes about Info objects in the constructor documentation of this class.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the property like setting |
Checks the existence of the given public aggregation by its name.
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the aggregation |
Checks the existence of the given public association by its name
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the association |
Checks the existence of the given event by its name
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the event |
Checks the existence of the given public property by its name
Param | Type | DefaultValue | Description |
---|---|---|---|
sName | string |
name of the property |
Test whether a given ID looks like it was automatically generated.
Examples:
True for: "foo--__bar04--baz" "foo--__bar04" "__bar04--baz" "__bar04" "__bar04--" "__bar04--foo" False for: "foo__bar04" "foo__bar04--baz"
See sap.ui.base.ManagedObjectMetadata.prototype.uid for details on ID generation.
Param | Type | DefaultValue | Description |
---|---|---|---|
sId | string |
the ID that should be tested |
Load and returns the design time metadata asynchronously. It inherits/merges parent design time metadata and if provided merges also instance specific design time metadata that was provided via the dt namespace.
Be aware that ManagedObjects do not ensure to have unique IDs. This may lead to issues if you would like to persist DesignTime based information. In that case you need to take care of identification yourself.
Param | Type | DefaultValue | Description |
---|---|---|---|
oManagedObject | sap.ui.base.ManagedObject |
instance that could have instance specific design time metadata |
|
sScopeKey | string |
scope name for which metadata will be resolved, see sap.ui.base.ManagedObjectMetadataScope |
Sets the map with the module names to predefined DesignTime objects which will be available in sap.ui.base.ManagedObjectMetadata.prototype.loadDesignTime
Param | Type | DefaultValue | Description |
---|---|---|---|
mPredefinedDesignTime | Object<string,string> |
map containing the module names |