org.qi4j.api.property

## Interface Property<T>

- Type Parameters:
    `T` - Parameterized type of the Property
  All Known Implementing Classes:
    PropertyWrapper

      public interface Property<T>

  Properties are declared in Composite interfaces by using this interface.

  It creates a first-class object for the property from which you can get and set the value, and access any metadata about it.

  The type of the Property can be one of the following:

  - A boxed primitive (Long,Integer,Boolean, etc.)
  - String
  - BigInteger
  - BigDecimal
  - Date
  - DateTime (Joda Time)
  - LocalDateTime (Joda Time)
  - A serializable
  - A ValueComposite
  - A List, Set or Collection of any of the above

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `get()` Get the value of the property.
    `void` | `set(T newValue)` Set the value of the property

- - ### Method Detail

    - #### get

          T get()

      Get the value of the property.
      Returns:
        the value

    - #### set

          void set(T newValue)
                   throws IllegalArgumentException,
                          IllegalStateException

      Set the value of the property
      Parameters:
        `newValue` - the new value
      Throws:
        `IllegalArgumentException` - if the value has an invalid value
        `IllegalStateException` - if the property is immutable