# Package groovy.lang

package groovy.lang

Core Groovy language classes for implementing data structures, closures, metadata and so forth.

- Related Packages
  Package
  Description
  groovy.lang.groovydoc
- Class
  Description
  AdaptingMetaClass
  An interface for MetaClass instances that "adapt" other MetaClass instances such as a proxy or delegating MetaClass.
  BenchmarkInterceptor
  Interceptor that registers the timestamp of each method call before and after invocation.
  Binding
  Represents the variable bindings of a script which can be altered from outside the script object or created outside of a script and passed into it.
  Buildable
  Category
  Transforms an instance-style Groovy class or interface to become a static-style conventional Groovy category.
  Closure<V>
  Represents any closure object in Groovy.
  ClosureException
  An exception thrown by a closure invocation
  ClosureInvokingMethod
  An interface for MetaMethods that invoke closures to implements.
  Delegate
  Annotation to automatically delegate part of the functionality of an owner class to the annotated delegation target.
  DelegatesTo
  This annotation can be used by API or DSL writers to document parameters which accept a closure.
  DelegatesTo.Target
  Parameter annotation used to specify the delegate for a `@DelegatesTo` annotated parameter of the same method.
  DelegatingMetaClass
  DeprecationException
  Use this exception to mark a method implementation as being deprecated.
  EmptyRange<T extends Comparable>
  Constructing Ranges like 0..<0
  ExpandoMetaClass
  ExpandoMetaClass is a MetaClass that behaves like an Expando, allowing the addition or replacement of methods, properties and constructors on the fly.
  ExpandoMetaClassCreationHandle
  A handle for the MetaClassRegistry that changes all classes loaded into the Grails VM to use ExpandoMetaClass instances
  GeneratedGroovyProxy
  An interface implemented by some Groovy proxies which gives access to the proxied object.
  Grab
  Used to grab the referenced artifact and its dependencies and make it available on the Classpath.
  GrabConfig
  Used to modify the grape configuration for grab requests.
  GrabExclude
  Used to exclude an indirectly referenced artifact (a transitive dependency) from the classpath.
  GrabResolver
  Used to add a repository for resolving Grape dependencies.
  Grapes
  Sometimes we will need more than one grab per class, but we can only add one annotation type per annotatable node.
  GroovyCallable<V>
  A special "marker" style interface allowing Groovy classes to implement both Runnable and Callable yet give preference to Runnable (for backwards compatibility) for APIs having both Runnable and Callable methods.
  GroovyClassLoader
  A ClassLoader which can load Groovy classes.
  GroovyClassLoader.ClassCollector
  GroovyClassLoader.InnerLoader
  GroovyCodeSource
  CodeSource wrapper class that allows specific security policies to be associated with a class compiled from groovy source.
  Groovydoc
  An annotation to hold the groovydoc for the annotated element at runtime, we call it "Runtime Groovydoc".
  GroovyInterceptable
  Marker interface used to notify that all methods should be intercepted through the `invokeMethod` mechanism of `GroovyObject`.
  GroovyObject
  The interface implemented by all Groovy objects.
  GroovyObjectSupport
  Base class for Java objects wishing to be Groovy objects.
  GroovyResourceLoader
  Allows frameworks that integrate with Groovy to determine how Groovy files are resolved.
  GroovyRuntimeException
  An exception thrown by the interpreter
  GroovyShell
  Represents a groovy shell capable of running arbitrary groovy scripts
  GroovySystem
  GString
  Represents a String which contains embedded values such as "hello there ${user} how are you?" which can be evaluated lazily.
  IllegalPropertyAccessException
  An exception occurred if a dynamic property dispatch fails with a field not accessible.
  IncorrectClosureArgumentsException
  An exception occurred when invoking a Closure with the wrong number and/or types of arguments
  Interceptor
  Implementers of this interface can be registered in the ProxyMetaClass for notifications about method calls for objects managed by the ProxyMetaClass.
  IntRange
  Represents a list of Integer objects starting at and potentially including a specified `from` value up (or down) to and potentially including a given `to` value.
  Lazy
  Field annotation to simplify lazy initialization.
  ListWithDefault<T>
  A wrapper for `List` which automatically grows the list when either `ListWithDefault.get(int)` or `ListWithDefault.getAt(int)` is called with an index greater than or equal to `size()`.
  MapWithDefault<K,V>
  A wrapper for Map which allows a default value to be specified using a closure.
  MetaArrayLengthProperty
  Represents the length property of an array
  MetaBeanProperty
  Represents a property on a bean which may have a getter and/or a setter
  MetaClass
  A MetaClass within Groovy defines the behaviour of any given Groovy or Java class.
  MetaClassImpl
  Allows methods to be dynamically added to existing classes at runtime
  MetaClassImpl.Index
  Deprecated.
  use `LinkedHashMap` instead
  MetaClassImpl.MetaConstructor
  This is a helper class introduced in Groovy 2.1.0, which is used only by indy.
  MetaClassRegistry
  A MetaClassRegistry is an object that is responsible for managing a cache of MetaClass instances.
  MetaClassRegistry.MetaClassCreationHandle
  Class used as base for the creation of MetaClass implementations.
  MetaClassRegistryChangeEvent
  An event used to propagate metaclass updates
  MetaClassRegistryChangeEventListener
  A listener called whenever a constant MetaClass is set, removed or replaced.
  MetaExpandoProperty
  Represents a property in an Expando object
  MetaMethod
  Represents a Method on a Java object a little like `Method` except without using reflection to invoke the method
  MetaObjectProtocol
  An interface that defines the API usable by clients of Groovy's Meta Object Protocol (MOP).
  MetaProperty
  Represents a property on a bean which may have a getter and/or a setter
  MissingClassException
  An exception occurred if a dynamic method dispatch fails with an unknown class.
  MissingFieldException
  An exception occurred if a dynamic field dispatch fails with an unknown field.
  MissingMethodException
  An exception occurred if a dynamic method dispatch fails with an unknown method.
  MissingPropertyException
  An exception occurred if a dynamic property dispatch fails with an unknown property.
  Mixin
  Deprecated.
  static mixins have been deprecated in favour of traits (trait keyword).
  MutableMetaClass
  An interface that defines methods that implementers of mutable Meta classes should specify.
  NamedValue<T>
  Represents a value with name
  Newify
  Annotation that supports writing constructor call expressions without the 'new' keyword.
  NonEmptySequence
  Represents a sequence of one or more objects of a given type.
  NumberRange
  Represents an immutable list of Numbers from a value to a value with a particular step size.
  ObjectRange
  Represents an inclusive list of objects from a value to a value using comparators.
  PropertyAccessInterceptor
  An interface that adds the ability to intercept property getters/setters
  PropertyValue
  ProxyMetaClass
  As subclass of MetaClass, ProxyMetaClass manages calls from Groovy Objects to POJOs.
  Range<T extends Comparable>
  A Range represents the list of discrete items between some starting (or `from`) value and working up towards some ending (or `to`) value.
  ReadOnlyPropertyException
  This exception is thrown if an attempt is made to set a read only property
  Reference<T>
  Represents a reference to a value
  Script
  This object represents a Groovy script
  Sequence
  Represents a sequence of zero or more objects of a given type.
  Singleton
  Class annotation to make a singleton class.
  SpreadListEvaluatingException
  SpreadMap
  Helper to turn a list with an even number of elements into a Map.
  SpreadMapEvaluatingException
  StringWriterIOException
  An IO exception occurred trying to append to a StringWriter which should never happen.
  TracingInterceptor
  Tuple<E>
  Represents a list of Objects.
  Tuple0
  Represents a list of 0 typed Object.
  Tuple1<T1>
  Represents a list of 1 typed Object.
  Tuple10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>
  Represents a list of 10 typed Objects.
  Tuple11<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>
  Represents a list of 10 typed Objects.
  Tuple12<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>
  Represents a list of 12 typed Objects.
  Tuple13<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>
  Represents a list of 13 typed Objects.
  Tuple14<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>
  Represents a list of 14 typed Objects.
  Tuple15<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>
  Represents a list of 15 typed Objects.
  Tuple16<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>
  Represents a list of 16 typed Objects.
  Tuple2<T1,T2>
  Represents a list of 2 typed Objects.
  Tuple3<T1,T2,T3>
  Represents a list of 3 typed Objects.
  Tuple4<T1,T2,T3,T4>
  Represents a list of 4 typed Objects.
  Tuple5<T1,T2,T3,T4,T5>
  Represents a list of 5 typed Objects.
  Tuple6<T1,T2,T3,T4,T5,T6>
  Represents a list of 6 typed Objects.
  Tuple7<T1,T2,T3,T4,T5,T6,T7>
  Represents a list of 7 typed Objects.
  Tuple8<T1,T2,T3,T4,T5,T6,T7,T8>
  Represents a list of 8 typed Objects.
  Tuple9<T1,T2,T3,T4,T5,T6,T7,T8,T9>
  Represents a list of 9 typed Objects.
  Writable
  Represents an object which is capable of writing itself to a text stream in a more efficient format than just creating a toString() representation of itself.