Package org.picocontainer

# Class Characteristics

java.lang.Object
org.picocontainer.Characteristics

public final class Characteristics extends Object
Collection of immutable properties, holding behaviour characteristics. See The PicoContainer Website for details on the usage of Characteristics.

Author:
  Paul Hammant
See Also:
  - `ComponentAdapter`
  - `Behavior`

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`Characteristics.ImmutableProperties`
Read only property set.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Properties`
`AUTOMATIC`
`static final Properties`
`CACHE`
Turns on Caching of component instances.
`static final Properties`
`CDI`
Turns on constructor injection.
`static final Properties`
`EMJECTION_ENABLED`
`static final Properties`
`ENABLE_CIRCULAR`
`static final String`
`FALSE`
Since properties use strings, we supply String constants for Boolean conditions.
`static final Properties`
`GUARD`
`static final Properties`
`HIDE_IMPL`
Turns on implementation hiding.
`static final Properties`
`LOCK`
Uses a java.util.concurrent.Lock to provide faster access than synchronized.
`static final Properties`
`METHOD_INJECTION`
Turns on Method Injection.
`static final Properties`
`NO_CACHE`
Turns off Caching of component instances.
`static final Properties`
`NO_HIDE_IMPL`
Turns off implementation hiding.
`static final Properties`
`NO_LOCK`
Turns off locking synchronization.
`static final Properties`
`NO_PROPERTY_APPLYING`
Turns off bean-setting property applications.
`static final Properties`
`NO_SINGLE`
Synonym for `NO_CACHE`.
`static final Properties`
`NO_SYNCHRONIZE`
Turns off synchronized access to the component instance.
`static final Properties`
`NONE`
`static final Properties`
`PROPERTY_APPLYING`
Turns on bean-setting property applications where certain simple properties are set after the object is created based.
`static final Properties`
`SDI`
Turns on Setter Injection.
`static final Properties`
`SINGLE`
Synonym for `CACHE`.
`static final Properties`
`SYNCHRONIZE`
Turns on synchronized access to the component instance.
`static final String`
`TRUE`
Since properties use strings, we supply String constants for Boolean conditions.
`static final Properties`
`USE_NAMES`

## Constructor Summary

Constructors
Constructor
Description
`Characteristics()`

## Method Summary

Modifier and Type
Method
Description
`static final Properties`
`GUARD(String with)`
`static Properties`
`immutable(String name, String value)`
Transforms a single name value pair unto a read only Properties instance.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### FALSE

public static final String FALSE
Since properties use strings, we supply String constants for Boolean conditions.

See Also:
  - Constant Field Values

### TRUE

public static final String TRUE
Since properties use strings, we supply String constants for Boolean conditions.

See Also:
  - Constant Field Values

### CDI

public static final Properties CDI
Turns on constructor injection.

See Also:
  - `ConstructorInjection`

### SDI

public static final Properties SDI
Turns on Setter Injection.

See Also:
  - `SetterInjection`

### METHOD_INJECTION

public static final Properties METHOD_INJECTION
Turns on Method Injection.

### NO_CACHE

public static final Properties NO_CACHE
Turns off Caching of component instances. (Often referred to in other circles as singleton).

See Also:
  - `Caching`

### CACHE

public static final Properties CACHE
Turns on Caching of component instances. (Often referred to in other circles as singleton)

See Also:
  - `Caching`

### SYNCHRONIZE

public static final Properties SYNCHRONIZE
Turns on synchronized access to the component instance. (Under JDK 1.5 conditions, it will be better to use `LOCK` instead.

See Also:
  - `Synchronizing`

### NO_SYNCHRONIZE

public static final Properties NO_SYNCHRONIZE
Turns off synchronized access to the component instance.

See Also:
  - `Synchronizing`

### LOCK

public static final Properties LOCK
Uses a java.util.concurrent.Lock to provide faster access than synchronized.

See Also:
  - `Locking`

### NO_LOCK

public static final Properties NO_LOCK
Turns off locking synchronization.

See Also:
  - `Locking`

### SINGLE

public static final Properties SINGLE
Synonym for `CACHE`.

See Also:
  - `Caching`

### NO_SINGLE

public static final Properties NO_SINGLE
Synonym for `NO_CACHE`.

See Also:
  - `Caching`

### HIDE_IMPL

public static final Properties HIDE_IMPL
Turns on implementation hiding. You may use the JDK Proxy implementation included in this version, or the ASM-based implementation hiding method included in PicoContainer Gems. However, you cannot use both in a single PicoContainer instance.

### NO_HIDE_IMPL

public static final Properties NO_HIDE_IMPL
Turns off implementation hiding.

See Also:
  - `for more information.`

### ENABLE_CIRCULAR

public static final Properties ENABLE_CIRCULAR

### NONE

public static final Properties NONE

### PROPERTY_APPLYING

public static final Properties PROPERTY_APPLYING
Turns on bean-setting property applications where certain simple properties are set after the object is created based.

### NO_PROPERTY_APPLYING

public static final Properties NO_PROPERTY_APPLYING
Turns off bean-setting property applications.

See Also:
  - `PropertyApplying`

### AUTOMATIC

public static final Properties AUTOMATIC

### USE_NAMES

public static final Properties USE_NAMES

### EMJECTION_ENABLED

public static final Properties EMJECTION_ENABLED

### GUARD

public static final Properties GUARD

## Constructor Details

### Characteristics

public Characteristics()

## Method Details

### GUARD

public static final Properties GUARD(String with)

### immutable

public static Properties immutable(String name, String value)
Transforms a single name value pair unto a read only Properties instance.

Example Usage:

                    Properties readOnly = immutable("oneKey","oneValue"};
                    assert readOnly.getProperty("oneKey") != null);

Parameters:
  `name` - the property key.
  `value` - the property value.
Returns:
  Read Only properties instance.