Groovy Documentation

groovy.util
[Java] Class ObjectGraphBuilder

java.lang.Object
  groovy.lang.GroovyObjectSupport
      groovy.lang.Binding
          groovy.util.FactoryBuilderSupport
              groovy.util.ObjectGraphBuilder

public class ObjectGraphBuilder
extends FactoryBuilderSupport

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.

Authors:
Scott Vlaminck (http://refactr.com)
Andres Almiray


Nested Class Summary
interface ObjectGraphBuilder.ChildPropertySetter

Strategy for setting a child node on its parent.

interface ObjectGraphBuilder.ClassNameResolver

Strategy for resolving a classname.

static class ObjectGraphBuilder.DefaultChildPropertySetter

Default impl that calls parent.propertyName = child
If parent.propertyName is a Collection it will try to add child to the collection.

static class ObjectGraphBuilder.DefaultClassNameResolver

Default impl that capitalizes the classname.

static class ObjectGraphBuilder.DefaultIdentifierResolver

Default impl, always returns 'id'

static class ObjectGraphBuilder.DefaultNewInstanceResolver

Default impl that calls Class.newInstance()

static class ObjectGraphBuilder.DefaultReferenceResolver

Default impl, always returns 'refId'

static class ObjectGraphBuilder.DefaultRelationNameResolver

Default impl that returns parentName & childName accordingly.

interface ObjectGraphBuilder.IdentifierResolver

Strategy for picking the correct synthetic identifier.

interface ObjectGraphBuilder.NewInstanceResolver

Strategy for creating new instances of a class.

interface ObjectGraphBuilder.ReferenceResolver

Strategy for picking the correct synthetic reference identifier.

class ObjectGraphBuilder.ReflectionClassNameResolver

Build objects using reflection to resolve class names.

interface ObjectGraphBuilder.RelationNameResolver

Strategy for resolving a relationship property name.

 
Field Summary
static java.lang.String CLASSNAME_RESOLVER_KEY

static java.lang.String CLASSNAME_RESOLVER_REFLECTION

static java.lang.String CLASSNAME_RESOLVER_REFLECTION_ROOT

static java.lang.String LAZY_REF

static java.lang.String NODE_CLASS

static java.lang.String NODE_NAME

static java.lang.String OBJECT_ID

 
Fields inherited from class FactoryBuilderSupport
CHILD_BUILDER, CURRENT_BUILDER, CURRENT_FACTORY, CURRENT_NAME, CURRENT_NODE, OWNER, PARENT_BUILDER, PARENT_CONTEXT, PARENT_FACTORY, PARENT_NAME, PARENT_NODE, SCRIPT_CLASS_NAME, attributeDelegates, autoRegistrationComplete, autoRegistrationRunning, explicitMethods, explicitProperties, methodMissingDelegate, postInstantiateDelegates, postNodeCompletionDelegates, preInstantiateDelegates, propertyMissingDelegate, registrationGroup, registrationGroupName
 
Constructor Summary
ObjectGraphBuilder()

 
Method Summary
java.lang.String getBeanFactoryName()

Returns the current name of the 'bean' node.

ObjectGraphBuilder.ChildPropertySetter getChildPropertySetter()

Returns the current ChildPropertySetter.

java.lang.ClassLoader getClassLoader()

Returns the classLoader used to load a node's class.

ObjectGraphBuilder.ClassNameResolver getClassNameResolver()

Returns the current ClassNameResolver.

ObjectGraphBuilder.NewInstanceResolver getNewInstanceResolver()

Returns the current NewInstanceResolver.

ObjectGraphBuilder.RelationNameResolver getRelationNameResolver()

Returns the current RelationNameResolver.

boolean isLazyReferencesAllowed()

Returns true if references can be resolved lazily

protected void postInstantiate(java.lang.Object name, java.util.Map attributes, java.lang.Object node)

protected void preInstantiate(java.lang.Object name, java.util.Map attributes, java.lang.Object value)

protected Factory resolveFactory(java.lang.Object name, java.util.Map attributes, java.lang.Object value)

void setBeanFactoryName(java.lang.String beanFactoryName)

Sets the name for the 'bean' node.

void setChildPropertySetter(java.lang.Object childPropertySetter)

Sets the current ChildPropertySetter.

void setClassLoader(java.lang.ClassLoader classLoader)

Sets the classLoader used to load a node's class.

void setClassNameResolver(java.lang.Object classNameResolver)

Sets the current ClassNameResolver.

void setIdentifierResolver(java.lang.Object identifierResolver)

Sets the current IdentifierResolver.

void setLazyReferencesAllowed(boolean lazyReferencesAllowed)

Sets whether references can be resolved lazily or not.

void setNewInstanceResolver(java.lang.Object newInstanceResolver)

Sets the current NewInstanceResolver.

void setReferenceResolver(java.lang.Object referenceResolver)

Sets the current ReferenceResolver.

void setRelationNameResolver(ObjectGraphBuilder.RelationNameResolver relationNameResolver)

Sets the current RelationNameResolver.

 
Methods inherited from class FactoryBuilderSupport
addAttributeDelegate, addDisposalClosure, addPostInstantiateDelegate, addPostNodeCompletionDelegate, addPreInstantiateDelegate, autoRegisterNodes, build, build, build, checkExplicitMethod, checkValueIsNull, checkValueIsType, checkValueIsTypeNotString, createNode, dispathNodeCall, dispose, getAttributeDelegates, getChildBuilder, getContext, getContextAttribute, getContexts, getContinuationData, getCurrent, getCurrentBuilder, getCurrentFactory, getCurrentName, getExplicitMethods, getExplicitProperties, getFactories, getLocalExplicitMethods, getLocalExplicitProperties, getLocalFactories, getMethodMissingDelegate, getName, getNameMappingClosure, getParentContext, getParentFactory, getParentName, getParentNode, getPostInstantiateDelegates, getPostNodeCompletionDelegates, getPreInstantiateDelegates, getProperty, getPropertyMissingDelegate, getProxyBuilder, getRegistrationGroupItems, getRegistrationGroups, getVariable, getVariables, handleNodeAttributes, invokeMethod, invokeMethod, newContext, nodeCompleted, popContext, postInstantiate, postNodeCompletion, preInstantiate, registerBeanFactory, registerBeanFactory, registerExplicitMethod, registerExplicitMethod, registerExplicitProperty, registerExplicitProperty, registerFactory, registerFactory, removeAttributeDelegate, removePostInstantiateDelegate, removePostNodeCompletionDelegate, removePreInstantiateDelegate, reset, resolveExplicitMethod, resolveExplicitProperty, resolveFactory, restoreFromContinuationData, setClosureDelegate, setMethodMissingDelegate, setNameMappingClosure, setNodeAttributes, setParent, setProperty, setPropertyMissingDelegate, setProxyBuilder, setVariable, withBuilder, withBuilder, withBuilder
 
Methods inherited from class Binding
getProperty, getVariable, getVariables, hasVariable, setProperty, setVariable
 
Methods inherited from class GroovyObjectSupport
getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

CLASSNAME_RESOLVER_KEY

public static final java.lang.String CLASSNAME_RESOLVER_KEY


CLASSNAME_RESOLVER_REFLECTION

public static final java.lang.String CLASSNAME_RESOLVER_REFLECTION


CLASSNAME_RESOLVER_REFLECTION_ROOT

public static final java.lang.String CLASSNAME_RESOLVER_REFLECTION_ROOT


LAZY_REF

public static final java.lang.String LAZY_REF


NODE_CLASS

public static final java.lang.String NODE_CLASS


NODE_NAME

public static final java.lang.String NODE_NAME


OBJECT_ID

public static final java.lang.String OBJECT_ID


 
Constructor Detail

ObjectGraphBuilder

public ObjectGraphBuilder()


 
Method Detail

getBeanFactoryName

public java.lang.String getBeanFactoryName()
Returns the current name of the 'bean' node.


getChildPropertySetter

public ObjectGraphBuilder.ChildPropertySetter getChildPropertySetter()
Returns the current ChildPropertySetter.


getClassLoader

public java.lang.ClassLoader getClassLoader()
Returns the classLoader used to load a node's class.


getClassNameResolver

public ObjectGraphBuilder.ClassNameResolver getClassNameResolver()
Returns the current ClassNameResolver.


getNewInstanceResolver

public ObjectGraphBuilder.NewInstanceResolver getNewInstanceResolver()
Returns the current NewInstanceResolver.


getRelationNameResolver

public ObjectGraphBuilder.RelationNameResolver getRelationNameResolver()
Returns the current RelationNameResolver.


isLazyReferencesAllowed

public boolean isLazyReferencesAllowed()
Returns true if references can be resolved lazily


postInstantiate

protected void postInstantiate(java.lang.Object name, java.util.Map attributes, java.lang.Object node)


preInstantiate

protected void preInstantiate(java.lang.Object name, java.util.Map attributes, java.lang.Object value)


resolveFactory

protected Factory resolveFactory(java.lang.Object name, java.util.Map attributes, java.lang.Object value)


setBeanFactoryName

public void setBeanFactoryName(java.lang.String beanFactoryName)
Sets the name for the 'bean' node.


setChildPropertySetter

public void setChildPropertySetter(java.lang.Object childPropertySetter)
Sets the current ChildPropertySetter.
It will assign DefaultChildPropertySetter if null.
It accepts a ChildPropertySetter instance or a Closure.


setClassLoader

public void setClassLoader(java.lang.ClassLoader classLoader)
Sets the classLoader used to load a node's class.


setClassNameResolver

public void setClassNameResolver(java.lang.Object classNameResolver)
Sets the current ClassNameResolver.
It will assign DefaultClassNameResolver if null.
It accepts a ClassNameResolver instance, a String, a Closure or a Map.


setIdentifierResolver

public void setIdentifierResolver(java.lang.Object identifierResolver)
Sets the current IdentifierResolver.
It will assign DefaultIdentifierResolver if null.
It accepts a IdentifierResolver instance, a String or a Closure.


setLazyReferencesAllowed

public void setLazyReferencesAllowed(boolean lazyReferencesAllowed)
Sets whether references can be resolved lazily or not.


setNewInstanceResolver

public void setNewInstanceResolver(java.lang.Object newInstanceResolver)
Sets the current NewInstanceResolver.
It will assign DefaultNewInstanceResolver if null.
It accepts a NewInstanceResolver instance or a Closure.


setReferenceResolver

public void setReferenceResolver(java.lang.Object referenceResolver)
Sets the current ReferenceResolver.
It will assign DefaultReferenceResolver if null.
It accepts a ReferenceResolver instance, a String or a Closure.


setRelationNameResolver

public void setRelationNameResolver(ObjectGraphBuilder.RelationNameResolver relationNameResolver)
Sets the current RelationNameResolver.
It will assign DefaultRelationNameResolver if null.


 

Groovy Documentation