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