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

Define a property manager \(PM\). Implementations of this class connect an optional [IPropertyDefinitionManager](IPropertyDefinitionManager) and an [IConfiguration](IConfiguration) together to offer clients a single point of entry to set and get legal properties. 

 A property should be defined and registered \(see [IPropertyDefinition](IPropertyDefinition) and [IPropertyDefinitionManager](IPropertyDefinitionManager)\). If an attempt is made to access \(read or write\) an undefined property, the attempt will:
 \- if writing, always succeed \(i.e., the property will be reading even though it is not specifically defined in a PDM\)
 \- if reading using an `unsafe` reader, fail: the reader will return null
 \- if reading using a safe reader, succeed or fail gracefully \(e.g., return a default value if no value exists in the PM\)

## Static Field: DEPTH_BASIC
Type: `int`

Constant value: `1`
Description: default depth: current PM, always stay in the property assigned namespace

## Static Field: DEPTH_FULL
Type: `int`

Constant value: `3`
Description: check for a same\-named property in parent namespace \(if allowed\)

## Static Field: DEPTH_MASTER
Type: `int`

Constant value: `2`
Description: check the master PM \(if any\)

## Method: dispose

Description: Release resources used by this manager.

## Method: getBoolean
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: Safely retrieve a boolean property. On error, false is returned.
parameter: name: property name
return: success indicator

## Method: getBoolean
- parameter: `name`, type: `java.lang.String`
- parameter: `defaultOnNull`, type: `boolean`
- return type: `boolean`

Description: Safely retrieve a boolean property.
parameter: name: the property name
parameter: defaultOnNull: 
return: success indicator

## Method: getBooleanUnsafe
- parameter: `name`, type: `java.lang.String`
- return type: `java.lang.Boolean`

Description: Retrieve a boolean property. This method may throw or return null.
parameter: name: property name
return: 

## Method: getConfiguration
- return type: `com.pnfsoftware.jeb.core.properties.IConfiguration`

Description: Get the configuration object.
return: the configuration object

## Method: getInteger
- parameter: `name`, type: `java.lang.String`
- return type: `int`

Description: Safely retrieve an integer property. On error, zero is returned. 

 Selection properties are integer properties.
parameter: name: property name
return: the property value

## Method: getInteger
- parameter: `name`, type: `java.lang.String`
- parameter: `defaultOnNull`, type: `int`
- return type: `int`

Description: Safely retrieve an integer property. 

 Selection properties are integer properties.
parameter: name: property name
parameter: defaultOnNull: 
return: the property value

## Method: getIntegerUnsafe
- parameter: `name`, type: `java.lang.String`
- return type: `java.lang.Integer`

Description: Retrieve an integer property. This method may throw or return null. 

 Selection properties are integer properties.
parameter: name: property name
return: the property value

## Method: getPropertyDefinitionManager
- return type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinitionManager`

Description: Get the PDM. Implementations may not provide a definition manager.
return: the PDM, null if none

## Method: getString
- parameter: `name`, type: `java.lang.String`
- return type: `java.lang.String`

Description: Safely retrieve a string property. On error, the empty string is returned.
parameter: name: property name
return: the property value

## Method: getString
- parameter: `name`, type: `java.lang.String`
- parameter: `defaultOnNull`, type: `java.lang.String`
- return type: `java.lang.String`

Description: Safely retrieve a string property.
parameter: name: property name
parameter: defaultOnNull: 
return: the property value

## Method: getStringUnsafe
- parameter: `name`, type: `java.lang.String`
- return type: `java.lang.String`

Description: Retrieve a string property.
parameter: name: property name
return: the property value

## Method: getValue
- parameter: `name`, type: `java.lang.String`
- return type: `java.lang.Object`

Description: Get a property value. Same as [getValue\(name, DEPTH\_FULL, true, true\)](#getValue(String, int, boolean, boolean)).
parameter: name: property name
return: the property value

## Method: getValue
- parameter: `name`, type: `java.lang.String`
- parameter: `checkingDepth`, type: `int`
- parameter: `resolveDefault`, type: `boolean`
- parameter: `validateValue`, type: `boolean`
- return type: `java.lang.Object`

Description: Get a property value with optional control on depth search and property validation. By default, property getters do a maximum depth search and validate values.
parameter: name: property name
parameter: checkingDepth: one of the `DEPTH_*` constant
parameter: resolveDefault: if the property has a definition, but does not have a value, the            default value \(as defined\) would be returned instead of potentially null
parameter: validateValue: if the property has a definition, validate the property value against            its definition
return: the property value object \(an Object, Boolean, Integer, or String\) or null

## Method: setBoolean
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Boolean`
- return type: `boolean`

Description: Set a boolean property.
parameter: name: property name
parameter: value: property value; null to remove the property
return: success indicator

## Method: setBoolean
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Boolean`
- parameter: `co`, type: `com.pnfsoftware.jeb.core.properties.impl.PropertyChangeObject`
- return type: `boolean`

Description: Set a boolean property.
parameter: name: property name
parameter: value: the property value; null to remove the property
parameter: co: optional change object; if present, the property is recorded into that object            instead of the PM, and changes are committed to the PM only after calling            [PropertyChangeObject#commit()](PropertyChangeObject#commit())
return: success indicator

## Method: setInteger
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Integer`
- return type: `boolean`

Description: Set an integer property. 

 Selection properties are integer properties.
parameter: name: property name
parameter: value: property value; null to remove the property
return: success indicator

## Method: setInteger
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Integer`
- parameter: `co`, type: `com.pnfsoftware.jeb.core.properties.impl.PropertyChangeObject`
- return type: `boolean`

Description: Set an integer property. 

 Selection properties are integer properties.
parameter: name: property name
parameter: value: property value; null to remove the property
parameter: co: optional change object; if present, the property is recorded into that object            instead of the PM, and changes are committed to the PM only after calling            [PropertyChangeObject#commit()](PropertyChangeObject#commit())
return: success indicator

## Method: setString
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.String`
- return type: `boolean`

Description: Set a string property.
parameter: name: the property name; null to remove the property
parameter: value: the property value

## Method: setString
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.String`
- parameter: `co`, type: `com.pnfsoftware.jeb.core.properties.impl.PropertyChangeObject`
- return type: `boolean`

Description: Set a string property.
parameter: name: property name
parameter: value: property value; null to remove the property
parameter: co: optional change object; if present, the property is recorded into that object            instead of the PM, and changes are committed to the PM only after calling            [PropertyChangeObject#commit()](PropertyChangeObject#commit())
return: success indicator

## Method: setValue
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Object`
- return type: `boolean`

Description: Set a property value.
parameter: name: property name
parameter: value: property value; null to remove the property
return: success indicator

## Method: setValue
- parameter: `name`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Object`
- parameter: `validateValue`, type: `boolean`
- parameter: `co`, type: `com.pnfsoftware.jeb.core.properties.impl.PropertyChangeObject`
- return type: `boolean`

Description: Set a property value with optional control on property validation. By default, property setters validate values.
parameter: name: property name
parameter: value: property value; null to remove the property
parameter: validateValue: validate the property value against its definition
parameter: co: \(optional\) if a change\-object is provided, the changes will not be recorded to the            manager, but added to the change\-object itself; client can later            [commit](PropertyChangeObject#commit()) all changes at once
return: success indicator

