# Package groovy.util

Various Groovy utilities for working with nodes, builders, logging, JUnit test cases, text expressions, Ant tasks or JMX MBeans.

See: Description

Interface Summary
Factory
IFileNameFinder
ObjectGraphBuilder.ChildPropertySetter: Strategy for setting a child node on its parent. Useful for handling Lists/Arrays vs normal properties.
ObjectGraphBuilder.ClassNameResolver: Strategy for resolving a classname.
ObjectGraphBuilder.IdentifierResolver: Strategy for picking the correct synthetic identifier.
ObjectGraphBuilder.NewInstanceResolver: Strategy for creating new instances of a class. Useful for plug-in calls to non-default constructors.
ObjectGraphBuilder.ReferenceResolver: Strategy for picking the correct synthetic reference identifier.
ObjectGraphBuilder.RelationNameResolver: Strategy for resolving a relationship property name.
ResourceConnector: Base interface for customizing where resources can be found for the `GroovyScriptEngine`.

Class Summary
AbstractFactory
AllTestSuite: AllTestSuite can be used in extension of GroovyTestSuite to execute TestCases written in Groovy from inside a Java IDE.
AntBuilder: Allows Ant tasks to be used with a Groovy builder-style markup.
BuilderSupport: An abstract base class for creating arbitrary nested trees of objects or events
CharsetToolkit: Utility class to guess the encoding of a given text file.
ClosureComparator<T>: A Comparator which uses a closure to compare 2 values being equal
ConfigObject: A ConfigObject at a simple level is a Map that creates configuration entries (other ConfigObjects) when referencing them.
DelegatingScript: `Script` that performs method invocations and property access like `Closure` does.
Eval: Allow easy integration from Groovy into Java through convenience methods.
Expando: Represents a dynamically expandable bean.
FactoryBuilderSupport: Mix of BuilderSupport and SwingBuilder's factory support.
GroovyAssert: Deprecated Use the `GroovyAssert` class instead
GroovyCollections: A Collections utility class
GroovyMBean: A GroovyObject facade for an underlying MBean which acts like a normal groovy object but which is actually implemented via an underlying JMX MBean.
GroovyScriptEngine: Specific script engine able to reload modified scripts as well as dealing properly with dependent scripts.
GroovyTestCase: A JUnit 3 `TestCase` base class in Groovy.
GroovyTestSuite: A TestSuite which will run a Groovy unit test case inside any Java IDE either as a unit test case or as an application.
IndentPrinter: A helper class for printing indented text.
MapEntry: A Map.Entry implementation.
Node: Represents an arbitrary tree node which can be used for structured metadata or any arbitrary XML-like tree.
NodeBuilder: A helper class for creating nested trees of Node objects for handling arbitrary data
NodeList: A List implementation which is returned by queries on a `Node` which provides some XPath like helper methods for GPath.
NodePrinter: A helper class for creating nested trees of data
ObjectGraphBuilder: A builder for creating object graphs. Each node defines the class to be created and the property on its parent (if any) at the same time.
ObjectGraphBuilder.DefaultChildPropertySetter: Default impl that calls parent.propertyName = child If parent.propertyName is a Collection it will try to add child to the collection.
ObjectGraphBuilder.DefaultClassNameResolver: Default impl that capitalizes the classname.
ObjectGraphBuilder.DefaultIdentifierResolver: Default impl, always returns 'id'
ObjectGraphBuilder.DefaultNewInstanceResolver: Default impl that calls Class.newInstance()
ObjectGraphBuilder.DefaultReferenceResolver: Default impl, always returns 'refId'
ObjectGraphBuilder.DefaultRelationNameResolver: Default impl that returns parentName and childName accordingly.
ObservableList: List decorator that will trigger PropertyChangeEvents when a value changes. An optional Closure may be specified and will work as a filter, if it returns true the property will trigger an event (if the value indeed changed), otherwise it won't.
ObservableList.ElementAddedEvent
ObservableList.ElementClearedEvent
ObservableList.ElementEvent
ObservableList.ElementRemovedEvent
ObservableList.ElementUpdatedEvent
ObservableList.MultiElementAddedEvent
ObservableList.MultiElementRemovedEvent
ObservableMap: Map decorator that will trigger PropertyChangeEvents when a value changes. An optional Closure may be specified and will work as a filter, if it returns true the property will trigger an event (if the value indeed changed), otherwise it won't.
ObservableMap.MultiPropertyEvent
ObservableMap.PropertyAddedEvent
ObservableMap.PropertyClearedEvent
ObservableMap.PropertyEvent
ObservableMap.PropertyRemovedEvent
ObservableMap.PropertyUpdatedEvent
ObservableSet<E>: Set decorator that will trigger PropertyChangeEvents when a value changes. An optional Closure may be specified and will work as a filter, if it returns true the property will trigger an event (if the value indeed changed), otherwise it won't.
ObservableSet.ElementAddedEvent
ObservableSet.ElementClearedEvent
ObservableSet.ElementEvent
ObservableSet.ElementRemovedEvent
ObservableSet.MultiElementAddedEvent
ObservableSet.MultiElementRemovedEvent
OrderBy<T>: A helper class for sorting objects via a closure to return the field or operation on which to sort.
PermutationGenerator<E>: Systematically generate permutations.
Proxy: Dynamic groovy proxy for another object.
ProxyGenerator: Classes to generate 'Proxy' objects which implement interfaces, maps of closures and/or extend classes/delegates.
XmlNodePrinter: Prints a `groovy.util.Node` (as used with `XmlParser`) including all children in XML format.
XmlNodePrinter.NamespaceContext
XmlParser: A helper class for parsing XML into a tree of Node instances for a simple way of processing XML.
XmlSlurper: Parse XML into a document tree that may be traversed similar to XPath expressions.

Enum Summary
ObservableList.ChangeType
ObservableMap.ChangeType
ObservableSet.ChangeType

Exception Summary
ResourceException
ScriptException

## Package groovy.util Description

Various Groovy utilities for working with nodes, builders, logging, JUnit test cases, text expressions, Ant tasks or JMX MBeans.