groovy.lang

## Interface GroovyObject

All Known Subinterfaces:
  GroovyInterceptable, GroovyResultSet

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

    public interface GroovyObject

The interface implemented by all Groovy objects.

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

### Method Summary

Methods
`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