# Interface: com.pnfsoftware.jeb.core.properties.IPropertyType

Base interface for property types. 

 Implementations provide a default value, validation rules, and optional read/write conversion hooks for property values.

## Method: afterRead
- parameter: `def`, type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinition`
- parameter: `value`, type: `java.lang.Object`
- return type: `java.lang.Object`

Description: Post\-processing to be done after reading a value. This method should only be called after a successful call to [#validate(Object)](#validate(Object)).
parameter: def: property definition associated with the value
parameter: value: must not be null
return: the converted value to expose to clients

## Method: beforeWrite
- parameter: `def`, type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinition`
- parameter: `value`, type: `java.lang.Object`
- return type: `java.lang.Object`

Description: Pre\-processing to be done before storing a value.
parameter: def: property definition associated with the value
parameter: value: value to be stored
return: the converted value to persist

## Method: getDefault
- return type: `java.lang.Object`

Description: Get the default value.
return: the default value, cannot be null

## Method: getName
- return type: `java.lang.String`

Description: Get the type name.
return: the human\-readable type name

## Method: validate
- parameter: `value`, type: `java.lang.Object`
- return type: `boolean`

Description: Validate a property value.
parameter: value: the property value
return: true on success

