# Yahoo! UI Library

### Container

Yahoo! UI Library > container > YAHOO.util.Config

## Class YAHOO.util.Config

Config is a utility used within an Object to allow the implementer to maintain a list of local configuration properties and listen for changes to those properties dynamically using CustomEvent. The initial values are also maintained so that the configuration can be reset at any given point to its initial state.

### Constructor

YAHOO.util.Config `( owner )`

Parameters:
  `owner <Object>` The owner Object to which this Config Object belongs

### Properties

#### config `- private Object`

Maintains the local collection of configuration property objects and their specified values

#### eventQueue `- private Object`

Maintains the local, normalized CustomEvent queue

#### initialConfig `- private Object`

Maintains the local collection of configuration property objects as they were initially applied. This object is used when resetting a property.

#### owner `- Object`

Object reference to the owner of this Config Object

#### queueInProgress `- Boolean`

Boolean flag that specifies whether a queue is currently being executed

### Methods

#### addProperty

`void addProperty ( key , propertyObject )`
Adds a property to the Config Object's private config hash.

Parameters:
  `key <String>` The configuration property's name
  `propertyObject <Object>` The Object containing all of this property's arguments

Returns: `void`

#### applyConfig

`void applyConfig ( userConfig , init )`
Applies a key-value Object literal to the configuration, replacing any existing values, and queueing the property events. Although the values will be set, fireQueue() must be called for their associated events to execute.

Parameters:
  `userConfig <Object>` The configuration Object literal
  `init <Boolean>` When set to true, the initialConfig will be set to the userConfig passed in, so that calling a reset will reset the properties to the passed values.

Returns: `void`

#### checkBoolean

`Boolean checkBoolean ( val )`
Validates that the value passed in is a Boolean.

Parameters:
  `val <Object>` The value to validate

Returns: `Boolean`
  true, if the value is valid

#### checkNumber

`Boolean checkNumber ( val )`
Validates that the value passed in is a number.

Parameters:
  `val <Object>` The value to validate

Returns: `Boolean`
  true, if the value is valid

#### fireEvent

`private void fireEvent ( key , Object )`
Fires a configuration property event using the specified value.

Parameters:
  `key <String>` The configuration property's name
  `Object <value>` The value of the correct type for the property

Returns: `void`

#### fireQueue

`void fireQueue ( )`
Fires the normalized list of queued property change events

Returns: `void`

#### getConfig

`Object getConfig ( )`
Returns a key-value configuration map of the values currently set in the Config Object.

Returns: `Object`
  The current config, represented in a key-value map

#### getProperty

`Object getProperty ( key )`
Returns the value of specified property.

Parameters:
  `key <String>` The name of the property

Returns: `Object`
  The value of the specified property

#### init

`void init ( owner )`
Initializes the configuration Object and all of its local members.

Parameters:
  `owner <Object>` The owner Object to which this Config Object belongs

Returns: `void`

#### outputEventQueue

`String outputEventQueue ( )`
Returns a string representation of the Config object's current CustomEvent queue

Returns: `String`
  The string list of CustomEvents currently queued for execution

#### queueProperty

`Boolean queueProperty ( key , value )`
Sets the value of a property and queues its event to execute. If the event is already scheduled to execute, it is moved from its current position to the end of the queue.

Parameters:
  `key <String>` The name of the property
  `value <String>` The value to set the property to

Returns: `Boolean`
  true, if the set was successful, false if it failed.

#### refireEvent

`void refireEvent ( key )`
Fires the event for a property using the property's current value.

Parameters:
  `key <String>` The name of the property

Returns: `void`

#### refresh

`void refresh ( )`
Refires the events for all configuration properties using their current values.

Returns: `void`

#### resetProperty

`Boolean resetProperty ( key )`
Resets the specified property's value to its initial value.

Parameters:
  `key <String>` The name of the property

Returns: `Boolean`
  True is the property was reset, false if not

#### setProperty

`Boolean setProperty ( key , value , silent )`
Sets the value of a property. If the silent property is passed as true, the property's event will not be fired.

Parameters:
  `key <String>` The name of the property
  `value <String>` The value to set the property to
  `silent <Boolean>` Whether the value should be set silently, without firing the property event.

Returns: `Boolean`
  True, if the set was successful, false if it failed.

#### subscribeToConfigEvent

`Boolean subscribeToConfigEvent ( key , handler , obj , override )`
Subscribes an external handler to the change event for any given property.

Parameters:
  `key <String>` The property name
  `handler <Function>` The handler function to use subscribe to the property's event
  `obj <Object>` The Object to use for scoping the event handler (see CustomEvent documentation)
  `override <Boolean>` Optional. If true, will override "this" within the handler to map to the scope Object passed into the method.

Returns: `Boolean`
  True, if the subscription was successful, otherwise false.

#### toString

`String toString ( )`
Returns a string representation of the Config object

Returns: `String`
  The Config object in string format.

#### unsubscribeFromConfigEvent

`Boolean unsubscribeFromConfigEvent ( key , handler , obj )`
Unsubscribes an external handler from the change event for any given property.

Parameters:
  `key <String>` The property name
  `handler <Function>` The handler function to use subscribe to the property's event
  `obj <Object>` The Object to use for scoping the event handler (see CustomEvent documentation)

Returns: `Boolean`
  True, if the unsubscription was successful, otherwise false.

#### YAHOO.util.Config.alreadySubscribed

`static Boolean YAHOO.util.Config.alreadySubscribed ( evt , fn , obj )`
Checks to determine if a particular function/Object pair are already subscribed to the specified CustomEvent

Parameters:
  `evt <YAHOO.util.CustomEvent>` The CustomEvent for which to check the subscriptions
  `fn <Function>` The function to look for in the subscribers list
  `obj <Object>` The execution scope Object for the subscription

Returns: `Boolean`
  true, if the function/Object pair is already subscribed to the CustomEvent passed in

### Events

#### configChangedEvent

`configChangedEvent ( )`
Object reference to the owner of this Config Object

Copyright © 2006 Yahoo! Inc. All rights reserved.