Package: grails.beans.util

## [Java] Class LazyMetaPropertyMap

- grails.beans.util.LazyMetaPropertyMap

- All Implemented Interfaces and Traits:
    java.util.Map

      @java.lang.SuppressWarnings({"unchecked","rawtypes"})
      @groovy.transform.CompileStatic
      public class LazyMetaPropertyMap
      extends java.lang.Object
      implements java.util.Map

  A map implementation that reads an objects properties lazily using Groovy's MetaClass.

  Authors:
    Graeme Rocher

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `private static java.util.List<java.lang.String>` | `EXCLUDES` |
    `private java.lang.Object` | `instance` |
    `private groovy.lang.MetaClass` | `metaClass` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `LazyMetaPropertyMap (java.lang.Object o)` Constructs the map

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `clear()` throws: UnsupportedOperationException
    `` | `public boolean` | `containsKey(java.lang.Object propertyName)` {@inheritDoc}
    `` | `public boolean` | `containsValue(java.lang.Object o)` Checks whether the specified value is contained within the Map.
    `` | `public java.util.Set<groovy.util.MapEntry>` | `entrySet()`
    `` | `public boolean` | `equals(java.lang.Object o)`
    `` | `public java.lang.Object` | `get(java.lang.Object propertyName)` Obtains the value of an object's properties on demand using Groovy's MOP.
    `` | `public java.lang.Object` | `getInstance()` Returns the wrapped instance.
    `` | `public int` | `hashCode()`
    `` | `public boolean` | `isEmpty()` {@inheritDoc}
    `` | `private boolean` | `isExcluded(groovy.lang.MetaProperty mp)`
    `` | `public java.util.Set<java.lang.String>` | `keySet()`
    `` | `public java.lang.Object` | `put(java.lang.Object propertyName, java.lang.Object propertyValue)`
    `` | `public void` | `putAll(java.util.Map map)`
    `` | `public java.lang.Object` | `remove(java.lang.Object o)` throws: UnsupportedOperationException
    `` | `public int` | `size()` {@inheritDoc}
    `` | `public java.util.Collection<java.lang.Object>` | `values()`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Field Detail

    - #### private static java.util.List<java.lang.String> EXCLUDES

    - #### private java.lang.Object instance

    - #### private groovy.lang.MetaClass metaClass

  - ### Constructor Detail

    - #### public LazyMetaPropertyMap(java.lang.Object o)

      Constructs the map

      Parameters:
        `o` - The object to inspect

  - ### Method Detail

    - #### public void clear()

      throws:
        UnsupportedOperationException

    - #### public boolean containsKey(java.lang.Object propertyName)

      {@inheritDoc}

      See Also:
        java.util.Map#containsKey(java.lang.Object)

    - #### public boolean containsValue(java.lang.Object o)

      Checks whether the specified value is contained within the Map. Note that because this implementation lazily initialises property values the behaviour may not be consistent with the actual values of the contained object unless they have already been initialised by calling get(Object)

      See Also:
        java.util.Map#containsValue(Object)

    - #### public java.util.Set<groovy.util.MapEntry> entrySet()

    - #### @java.lang.Override public boolean equals(java.lang.Object o)

    - #### public java.lang.Object get(java.lang.Object propertyName)

      Obtains the value of an object's properties on demand using Groovy's MOP.

      Parameters:
        `propertyName` - The name of the property
      Returns:
        The property value or null

    - #### public java.lang.Object getInstance()

      Returns the wrapped instance.

      Returns:
        The wrapped instance

    - #### @java.lang.Override public int hashCode()

    - #### public boolean isEmpty()

      {@inheritDoc}

      See Also:
        java.util.Map#isEmpty()

    - #### private boolean isExcluded(groovy.lang.MetaProperty mp)

    - #### public java.util.Set<java.lang.String> keySet()

    - #### public java.lang.Object put(java.lang.Object propertyName, java.lang.Object propertyValue)

    - #### public void putAll(java.util.Map map)

    - #### public java.lang.Object remove(java.lang.Object o)

      throws:
        UnsupportedOperationException

    - #### public int size()

      {@inheritDoc}

      See Also:
        java.util.Map#size()

    - #### public java.util.Collection<java.lang.Object> values()