groovy.lang

## Interface GroovyObject

- All Known Subinterfaces:
    GroovyInterceptable, GroovyResultSet
  All Known Implementing Classes:
    AntBuilder, Attribute, Attributes, BaseMarkupBuilder, BatchingPreparedStatementWrapper, BatchingStatementWrapper, Binding, BindingProxy, BooleanWrapper, Builder, Builder.Built, BuilderSupport, ByteWrapper, CharWrapper, Closure, ComposedClosure, ConfigObject, CurriedClosure, DelegatingMetaClass, DelegatingScript, DOMBuilder, DoubleWrapper, Expando, ExpandoMetaClass, ExpandoMetaClass.ExpandoMetaConstructor, ExpandoMetaClass.ExpandoMetaProperty, FactoryBuilderSupport, FilteredAttributes, FilteredNodeChildren, FloatWrapper, GPathResult, GroovyMBean, GroovyObjectSupport, GroovyObjectWrapper, GroovyResultSetExtension, GroovyRowResult, GroovyShell, GroovyTypeCheckingExtensionSupport.TypeCheckingDSL, GString, GStringImpl, HandleMetaClass, IntWrapper, IteratorClosureAdapter, JsonBuilder, JsonDelegate, LongWrapper, MarkupBuilder, MessageSource, MethodClosure, MixedInMetaClass, NamespaceBuilderSupport, NoChildren, NodeBuilder, NodeChild, NodeChildren, NodeParents, NonEmptySequence, NullObject, ObjectGraphBuilder, OwnedMetaClass, PojoWrapper, Proxy, Reference, ResultSetMetaDataWrapper, SAXBuilder, Script, ScriptReference, Sequence, ServletBinding, ShortWrapper, StreamingJsonBuilder, StreamingJsonBuilder.StreamingJsonDelegate, Wrapper

      public interface GroovyObject

  The interface implemented by all Groovy objects.

  Especially handy for using Groovy objects when in the Java world.

  Author:
    James Strachan

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `MetaClass` | `getMetaClass()` Returns the metaclass for a given class.
    `java.lang.Object` | `getProperty(java.lang.String propertyName)` Retrieves a property value.
    `java.lang.Object` | `invokeMethod(java.lang.String name, java.lang.Object args)` Invokes the given method.
    `void` | `setMetaClass(MetaClass metaClass)` Allows the MetaClass to be replaced with a derived implementation.
    `void` | `setProperty(java.lang.String propertyName, java.lang.Object newValue)` Sets the given property to the new value.

- - ### Method Detail

    - #### invokeMethod

          java.lang.Object invokeMethod(java.lang.String name,
                                        java.lang.Object args)

      Invokes the given method.
      Parameters:
        `name` - the name of the method to call
        `args` - the arguments to use for the method call
      Returns:
        the result of invoking the method

    - #### getProperty

          java.lang.Object getProperty(java.lang.String propertyName)

      Retrieves a property value.
      Parameters:
        `propertyName` - the name of the property of interest
      Returns:
        the given property

    - #### setProperty

          void setProperty(java.lang.String propertyName,
                           java.lang.Object newValue)

      Sets the given property to the new value.
      Parameters:
        `propertyName` - the name of the property of interest
        `newValue` - the new value for the property

    - #### getMetaClass

          MetaClass getMetaClass()

      Returns the metaclass for a given class.
      Returns:
        the metaClass of this instance

    - #### setMetaClass

          void setMetaClass(MetaClass metaClass)

      Allows the MetaClass to be replaced with a derived implementation.
      Parameters:
        `metaClass` - the new metaclass