/**
*
*
* Service Data Objects
* Version 2.0
* Licensed Materials - Property of BEA and IBM
*
* (c) Copyright BEA Systems, Inc. and International Business Machines Corp 2005. All rights reserved.
*
*
*
*/
package commonj.sdo;
import java.util.List;
/**
* A representation of a Property in the {@link Type type} of a {@link DataObject data object}.
*/
public interface Property
{
/**
* Returns the name of the Property.
* @return the Property name.
*/
String getName();
/**
* Returns the type of the Property.
* @return the Property type.
*/
Type getType();
/**
* Returns whether the Property is many-valued.
* @return true
if the Property is many-valued.
*/
boolean isMany();
/**
* Returns whether the Property is containment, i.e., whether it represents by-value composition.
* @return true
if the Property is containment.
*/
boolean isContainment();
/**
* Returns the containing type of this Property.
* @return the Property's containing type.
* @see Type#getProperties()
*/
Type getContainingType();
/**
* Returns the default value this Property will have in a {@link DataObject data object} where the Property hasn't been set.
* @return the default value.
*/
Object getDefault();
/**
* Returns true if values for this Property cannot be modified using the SDO APIs.
* When true, DataObject.set(Property property, Object value) throws an exception.
* Values may change due to other factors, such as services operating on DataObjects.
* @return true if values for this Property cannot be modified.
*/
boolean isReadOnly();
/**
* Returns the opposite Property if the Property is bi-directional or null otherwise.
* @return the opposite Property if the Property is bi-directional or null
*/
Property getOpposite();
/**
* Return a list of alias names for this Property.
* @return a list of alias names for this Property.
*/
List /*String*/ getAliasNames();
}