# com.bea.p13n.property
PropertyDefinition Interface

public interface PropertyDefinition

Public interface for a property definition. A property definition is meta-data about a property that might be set on a Configurable Entity. It contains information such as the property's datatype, a default value, whether it is restricted to a set of allowable values, and whether it supports multiple values.

The property type constants here are imported from `com.beasys.commerce.util.TypesHelper`, and are duplicated here for convenience, and in case TypesHelper is not included in future releases.

You can use the no-arg constructor for the internal class com.bea.p13n.property.internal.PropertyDefinitionImpl when creating a PropertyDefinition. PropertyDefinitionImpl extends com.bea.p13n.property.AbstractPropertyDefinition. For example:

PropertyDefinitionImpl myPropSetDefImpl = new PropertyDefinitionImpl();
myPropSetDefImpl.setDescription(pdDesc);
myPropSetDefImpl.setMultiValued(pdMV);
myPropSetDefImpl.setRestricted(pdRest);
myPropSetDefImpl.setType(pdType);
myPropSetDefImpl.setDefaultValue(pdDefVal);
myPropSetDefImpl.setRestrictedValues(pdRestVals);

The setType() will use constants described below under the Field Summary Section.

Related Topics

``PropertySet``
``ConfigurableEntity``
``AbstractPropertyDefinition``

All Known Implementing Classes
  `AbstractPropertyDefinition`

## Field Summary

`public static final int` | `BOOLEAN` The constant for a boolean type (0).
`public static final int` | `DATETIME` The constant for a datetime java.sql.Timestamp type (4).
`public static final int` | `FLOAT` The constant for the floating-point numeric type (2).
`public static final int` | `INTEGER` The constant for a numeric type (1).
`public static final int` | `TEXT` The constant for a text type (3).
`public static final int` | `USER_DEFINED` The constant for a user defined type (5).

## Method Summary

`public `Object`` | `getDefaultValue`() Get the default value for this property.
`public `String`` | `getDescription`() Get the description of this property
`public `Collection`` | `getRestrictedValues`() Get the allowable values, if this property is restricted.
`public int` | `getType`() Get the datatype of the property
`public boolean` | `isMultiValued`() Can this property support multiple values?
`public boolean` | `isRestricted`() Is this property restricted to a certain list of values?
`public void` | `validate`(`Object` value) Check to see if a value is valid for this property definition.

## Field Detail

### BOOLEAN

    public static final int BOOLEAN

  The constant for a boolean type (0).

### DATETIME

    public static final int DATETIME

  The constant for a datetime java.sql.Timestamp type (4).

### FLOAT

    public static final int FLOAT

  The constant for the floating-point numeric type (2).

### INTEGER

    public static final int INTEGER

  The constant for a numeric type (1).

### TEXT

    public static final int TEXT

  The constant for a text type (3).

### USER_DEFINED

    public static final int USER_DEFINED

  The constant for a user defined type (5).

## Method Detail

### getDefaultValue() Method

    public Object getDefaultValue()

Get the default value for this property. If it is multivalued, this might be a collection of values. Note: this returns a clone of the default value; if it is a collection, and the property values are mutable objects, care must be taken not to modify them.

#### Returns

the default value, or null if there is none

### getDescription() Method

    public String getDescription()

Get the description of this property

### getRestrictedValues() Method

    public Collection getRestrictedValues()

Get the allowable values, if this property is restricted. Note: this does a shallow clone to prevent the collection from being modified, but if any property values are mutable, care must be taken not to modify them.

#### Returns

a Collection of allowable values, or null if there are none

### getType() Method

    public int getType()

Get the datatype of the property

### isMultiValued() Method

    public boolean isMultiValued()

Can this property support multiple values?

### isRestricted() Method

    public boolean isRestricted()

Is this property restricted to a certain list of values?

### validate(Object) Method

    public void validate(Object value)
         throws PropertyValidationException

Check to see if a value is valid for this property definition.

#### Exceptions

``PropertyValidationException``
  if the value is not valid.