com.evolveum.midpoint.xml.ns._public.common.common_2a
Class ObjectType

java.lang.Object
  extended by com.evolveum.midpoint.xml.ns._public.common.common_2a.ObjectType
All Implemented Interfaces:
Containerable, Objectable, Serializable, Cloneable
Direct Known Subclasses:
AbstractRoleType, ConnectorHostType, ConnectorType, GenericObjectType, NodeType, ResourceObjectShadowType, ResourceType, SystemConfigurationType, TaskType, UserTemplateType, UserType, ValuePolicyType

public abstract class ObjectType
extends Object
implements Serializable, Cloneable, Objectable

Common supertype for all identity objects. Defines basic properties that each object must have to live in our system (identifier, name). Objects consists of identifier and name (see definition below) and a set of properties represented as XML elements in the object's body. The properties are represented as first-level XML elements (tags) of the object XML representation and may be also contained in other tags (e.g. extension, attributes) that are marked by a propertyContainer annotation. The QName (namespace and local name) of the element holding the property is considered to be a property name. Single-value properties must appear as a none or one instance of the XML element holding the value. Multi-value properties must appear as none or more instances of the same XML element. Multi-valued properties are regarded as unordered sets. Duplicate values are allowed, but duplicates should not be preserved by the implementations. The implementations should reduce duplicate values to a single value if it is possible and efficient. If an element for a specific property does not appear in the object it means that the property value is undefined (property does not exists). This is a different state as compared to passing an empty XML element. Empty XML element means that the property exists, but has an empty (null) value. Implementations must be able to handle undefined (non-existent) properties, but may NOT be able to handle empty (null) values. The use of empty (null) values is DISCOURADGED. It is not mandated by this specification how to pass ordered lists and multi-value properties with duplicates. However it is recommended to use single value properties with appropriate complex XML data structures to hold such data. The following XML snippet is an example of the object (omitting namespace definitions, but assuming default namespace to be the target namespace of this schema definition): The above example describes an object with identifier "d3adm3a4", name "foobar" and type defined by its top-level element User that corresponds to URI "http://midpoint.evolveum.com/xml/ns/identity/1#User". The object has 7 properties. Three of them are standard properties defined by this schema: Standard properties "fullName", "givenName" and "familyName" in default namespace. These are single-valued string properties. All the other properties are non-standard "extended" properties, but they are considered equal to the standard attributes. They are quarantined in the tag only to avoid XSD unique particle attribution (UPA) problems. In the above example the non-standard properties are: Property "geekName" in namespace defined by "foo" prefix. This is also single-valued string property. Multi-valued non-standard property "guild". It is a string property with multiple values. Multiple values are represented by providing multiple instances of XML elements in the document. Such properties are typically used for roles, groups, etc. Complex property "pet". This property is defined by complex XML type, using XML sub-elements to represent structured data. Note that the use of XML attributes is discouraged in the properties, although it might be possible in some cases. This is also multi-valued property. Complex property "shoppingPreferences". This property is using complex XML type to form a structure of XML elements to represent data. This is a single-valued property. Note that the sub-elements "tShirt" and "tie" are NOT considered to be properties. QName-URI mapping: For the purpose of this schema and all components that are using it, URIs and QNames are considered equivalent. This is required by WWW architecture and also helps avoid some drawbacks and bugs in XML-related implementations that usually do not deal QNames well. The QNames are mapped to URIs by concatenating namespace URI and a local name. If URI does not end with slash (/) or hash (#) character, slash is concatenated to the URI before adding the local name. The URI-QName mapping is the reverse process.

Java class for ObjectType complex type.

The following schema fragment specifies the expected content contained within this class.

 <complexType name="ObjectType">
   <complexContent>
     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
       <sequence>
         <element name="name" type="{http://prism.evolveum.com/xml/ns/public/types-2}PolyStringType" minOccurs="0"/>
         <element ref="{http://midpoint.evolveum.com/xml/ns/public/common/common-2a}description" minOccurs="0"/>
         <element name="fetchResult" type="{http://midpoint.evolveum.com/xml/ns/public/common/common-2a}OperationResultType" minOccurs="0"/>
         <element ref="{http://midpoint.evolveum.com/xml/ns/public/common/common-2a}extension" minOccurs="0"/>
         <element name="parentOrg" type="{http://midpoint.evolveum.com/xml/ns/public/common/common-2a}OrgType" maxOccurs="unbounded" minOccurs="0"/>
         <element name="parentOrgRef" type="{http://midpoint.evolveum.com/xml/ns/public/common/common-2a}ObjectReferenceType" maxOccurs="unbounded" minOccurs="0"/>
       </sequence>
       <attribute name="oid" type="{http://www.w3.org/2001/XMLSchema}string" />
       <attribute name="version" type="{http://www.w3.org/2001/XMLSchema}string" />
     </restriction>
   </complexContent>
 </complexType>
 

See Also:
Serialized Form

Field Summary
static QName COMPLEX_TYPE
           
static QName F_DESCRIPTION
           
static QName F_EXTENSION
           
static QName F_FETCH_RESULT
           
static QName F_NAME
           
static QName F_PARENT_ORG
           
static QName F_PARENT_ORG_REF
           
protected  List<ObjectReferenceType> parentOrgRef
           
 
Constructor Summary
ObjectType()
           
 
Method Summary
protected  PrismObject asPrismContainer()
           
 PrismContainerValue asPrismContainerValue()
           
 PrismObject asPrismObject()
           
 ObjectType clone()
           
 boolean equals(Object object)
           
 String getDescription()
           
 ExtensionType getExtension()
           
 OperationResultType getFetchResult()
           
 PolyStringType getName()
           
 String getOid()
           
 List<OrgType> getParentOrg()
           
 List<ObjectReferenceType> getParentOrgRef()
           
 String getVersion()
           
 int hashCode()
           
 void setDescription(String value)
           
 void setExtension(ExtensionType value)
           
 void setFetchResult(OperationResultType value)
           
 void setName(PolyStringType value)
           
 void setOid(String value)
           
 void setupContainer(PrismObject container)
           
 void setupContainerValue(PrismContainerValue containerValue)
          Setup value to the containerable representation.
 void setVersion(String value)
           
 String toDebugName()
          Returns short string representing identity of this object.
 String toDebugType()
          Returns short string identification of object type.
 String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

parentOrgRef

protected List<ObjectReferenceType> parentOrgRef

COMPLEX_TYPE

public static final QName COMPLEX_TYPE

F_NAME

public static final QName F_NAME

F_DESCRIPTION

public static final QName F_DESCRIPTION

F_FETCH_RESULT

public static final QName F_FETCH_RESULT

F_EXTENSION

public static final QName F_EXTENSION

F_PARENT_ORG

public static final QName F_PARENT_ORG

F_PARENT_ORG_REF

public static final QName F_PARENT_ORG_REF
Constructor Detail

ObjectType

public ObjectType()
Method Detail

setupContainer

public void setupContainer(PrismObject container)
Specified by:
setupContainer in interface Objectable

asPrismObject

public PrismObject asPrismObject()
Specified by:
asPrismObject in interface Objectable

asPrismContainer

protected PrismObject asPrismContainer()

asPrismContainerValue

public PrismContainerValue asPrismContainerValue()
Specified by:
asPrismContainerValue in interface Containerable

setupContainerValue

public void setupContainerValue(PrismContainerValue containerValue)
Description copied from interface: Containerable
Setup value to the containerable representation. This is used to after (empty) containerable is created to initialize it with a correct prism container value. Note: This method DOES NOT change the container value parent.

Specified by:
setupContainerValue in interface Containerable

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object object)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toDebugName

public String toDebugName()
Description copied from interface: Objectable
Returns short string representing identity of this object. It should container object type, OID and name. It should be presented in a form suitable for log and diagnostic messages (understandable for system administrator).

Specified by:
toDebugName in interface Objectable

toDebugType

public String toDebugType()
Description copied from interface: Objectable
Returns short string identification of object type. It should be in a form suitable for log messages. There is no requirement for the type name to be unique, but it rather has to be compact. E.g. short element names are preferred to long QNames or URIs.

Specified by:
toDebugType in interface Objectable
Returns:

getName

public PolyStringType getName()
Specified by:
getName in interface Objectable

setName

public void setName(PolyStringType value)
Specified by:
setName in interface Objectable

getDescription

public String getDescription()
Specified by:
getDescription in interface Objectable

setDescription

public void setDescription(String value)
Specified by:
setDescription in interface Objectable

getFetchResult

public OperationResultType getFetchResult()

setFetchResult

public void setFetchResult(OperationResultType value)

getExtension

public ExtensionType getExtension()

setExtension

public void setExtension(ExtensionType value)

getParentOrg

public List<OrgType> getParentOrg()

getParentOrgRef

public List<ObjectReferenceType> getParentOrgRef()

getOid

public String getOid()
Specified by:
getOid in interface Objectable

setOid

public void setOid(String value)
Specified by:
setOid in interface Objectable

getVersion

public String getVersion()
Specified by:
getVersion in interface Objectable

setVersion

public void setVersion(String value)
Specified by:
setVersion in interface Objectable

clone

public ObjectType clone()
Overrides:
clone in class Object


Copyright © 2013 evolveum. All Rights Reserved.