package org.openiam.base.property;
/**
* <code>Property</code> class represents an attribute row of a
* property container. A property can be added to any object
* implementing the property container interface with the class having any knowledge
* of the property or requiring any interface or code change to accomodate the addition
* of that property. <code>Property</code> may be extended to include other methods fields
* and methods and still maintain compatibility with related property containers.
* A typical Attribute table could consist of an attributeId, fields mapping to
* the parent key and fields mapping to an object. Metadata Id may or may not
* exist. If it does exist, it provides a join to show more fields of a property,
* as well as constraints, and contain names of fields for display.
*/
public interface Property extends java.io.Serializable {
/**
* Gets the unique id of this object.
* @return java.lang.String
*/
public String getId();
/**
* Gets the name of this object.
* @return java.lang.String
*/
public String getName();
/**
* Gets the key object of the parent or owning object, such as User, Company,
* Product.
*/
public Object getParentKey();
/**
* Gets the value of this component.
*/
public Object getValue();
/**
* Returns the value of the property as a string. This method is useful when
* the value is an <code>Object</code>.
*/
public String getValueAsString();
/**
* Sets the unique id for this component.
* @return java.lang.String
*/
public void setId(String id);
/**
* Gets the name of this object.
* @return java.lang.String
*/
public void setName(String name);
/**
* Sets the Id of the parent or owning object, such as User, Company,
* Product.
*/
public void setParentKey(Object id);
/**
* Sets the value of this component.
*/
public void setValue(Object value);
/**
* Indicates if the values in this property were changed since the last time they were
* saved in the database.
*/
public boolean isModified();
/**
* Returns the MetaData Associated with this object.
*/
public String getMetaDataId();
public void setMetaDataId(String val);
/**
* <p>
* <code>isMultivalued</code><font face="arial"> indicates is this is a
* <code>MultiValuedProperty</code>.
* </font><p>
*/
public boolean isMultivalued();
}