Advanced Customization > Business Logic Customization > Identified Business Classes
  
Identified Business Classes
Identity Attributes
Identity attributes are the attributes of an object that, as a whole, distinguish it to the user from other objects. The designer of a class must decide which attributes compose its identity. For example, a SubFolder is identified by its name and its parent folder. A WTPart’s identity attributes include number and name. For classes that are uniquely identified, at least one of the identity attributes of the class must have a uniqueness constraint in order to distinguish between different instances of the class.
* 
For more information on Java Annotations see Modeling Business Objects.
Permissions to Modify Identity
Business object attributes are modelled with the "Changeble" property set to "ViaOtherMeans" to prevent use of the attribute's setter after the object is persisted; this enforces use of a service (such as the Identity Service) for changing these attributes. A separate use of the "Changeable" property- on the attributes of the wt.fc.IdentificationObject, not the business object- will identify attributes which can be edited only by users possessing the MODIFY_IDENTITY permission.
If an attribute of a wt.fc.IdentificationObject is modelled with the "Changeable" property set to "ViaOtherMeans", the Identity Service will consider that attribute part of the identity, and will require that the user have MODIFY_IDENTITY permission to change that attribute. The Identity Service will require MODIFY permission to change attributes whose models do not have the "Changeable" property set to "ViaOtherMeans". Attributes which are modelled as "Changeable Via Other Means" on the business object, but are not so modelled on the IdentificationObject, will not be protected by the MODIFY_IDENTITY permission.
* 
See the Javadoc for com.ptc.windchill.annotations.metadata.Changeable.