/** * * * 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(); }