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.
| Modifiers | Name | Description |
|---|---|---|
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 and 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. |
| Modifiers | Name | Description |
|---|---|---|
static String |
CLASSNAME_RESOLVER_KEY |
Option key selecting a class-name resolver strategy. |
static String |
CLASSNAME_RESOLVER_REFLECTION |
Resolver option that uses reflection against the graph model. |
static String |
CLASSNAME_RESOLVER_REFLECTION_ROOT |
Resolver option holding the root package for reflection lookup. |
static String |
LAZY_REF |
Context key indicating that a reference should be resolved lazily. |
static String |
NODE_CLASS |
Context key for the resolved node class. |
static String |
NODE_NAME |
Context key for the resolved node name. |
static String |
OBJECT_ID |
Context key for a synthetic object identifier. |
| Constructor and description |
|---|
ObjectGraphBuilder()Creates an object graph builder with default resolver strategies. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public String |
getBeanFactoryName()Returns the current name of the 'bean' node. |
|
public ObjectGraphBuilder.ChildPropertySetter |
getChildPropertySetter()Returns the current ChildPropertySetter. |
|
public ClassLoader |
getClassLoader()Returns the classLoader used to load a node's class. |
|
public ObjectGraphBuilder.ClassNameResolver |
getClassNameResolver()Returns the current ClassNameResolver. |
|
public ObjectGraphBuilder.NewInstanceResolver |
getNewInstanceResolver()Returns the current NewInstanceResolver. |
|
public ObjectGraphBuilder.RelationNameResolver |
getRelationNameResolver()Returns the current RelationNameResolver. |
|
public boolean |
isLazyReferencesAllowed()Returns true if references can be resolved lazily |
|
protected void |
postInstantiate(Object name, Map attributes, Object node)* A hook after the factory creates the node and before attributes are set. * It will call any registered postInstantiateDelegates, if you override * this method be sure to call this impl somewhere in your code. * *
|
|
protected void |
preInstantiate(Object name, Map attributes, Object value)* A hook before the factory creates the node. * It will call any registered preInstantiateDelegates, if you override this * method be sure to call this impl somewhere in your code. * *
|
|
protected Factory |
resolveFactory(Object name, Map attributes, Object value)* This is a hook for subclasses to plug in a custom strategy for mapping * names to factories. * *
|
|
public void |
setBeanFactoryName(String beanFactoryName)Sets the name for the 'bean' node. |
|
public void |
setChildPropertySetter(Object childPropertySetter)Sets the current ChildPropertySetter. |
|
public void |
setClassLoader(ClassLoader classLoader)Sets the classLoader used to load a node's class. |
|
public void |
setClassNameResolver(Object classNameResolver)Sets the current ClassNameResolver. |
|
public void |
setIdentifierResolver(Object identifierResolver)Sets the current IdentifierResolver. |
|
public void |
setLazyReferencesAllowed(boolean lazyReferencesAllowed)Sets whether references can be resolved lazily or not. |
|
public void |
setNewInstanceResolver(Object newInstanceResolver)Sets the current NewInstanceResolver. |
|
public void |
setReferenceResolver(Object referenceResolver)Sets the current ReferenceResolver. |
|
public void |
setRelationNameResolver(ObjectGraphBuilder.RelationNameResolver relationNameResolver)Sets the current RelationNameResolver. |
Option key selecting a class-name resolver strategy.
Resolver option that uses reflection against the graph model.
Resolver option holding the root package for reflection lookup.
Context key indicating that a reference should be resolved lazily.
Context key for the resolved node class.
Context key for the resolved node name.
Context key for a synthetic object identifier.
Creates an object graph builder with default resolver strategies.
Returns the current name of the 'bean' node.
Returns the current ChildPropertySetter.
Returns the classLoader used to load a node's class.
Returns the current ClassNameResolver.
Returns the current NewInstanceResolver.
Returns the current RelationNameResolver.
Returns true if references can be resolved lazily
* A hook after the factory creates the node and before attributes are set.
* It will call any registered postInstantiateDelegates, if you override
* this method be sure to call this impl somewhere in your code.
*
*
name - the name of the node
*attributes - the attributes for the node
*node - the object created by the node factory
* A hook before the factory creates the node.
* It will call any registered preInstantiateDelegates, if you override this
* method be sure to call this impl somewhere in your code.
*
*
name - the name of the node
*attributes - the attributes of the node
*value - the value argument(s) of the node* This is a hook for subclasses to plug in a custom strategy for mapping * names to factories. * *
name - the name of the factory
*attributes - the attributes from the node
*value - value arguments from te node
*Sets the name for the 'bean' node.
Sets the current ChildPropertySetter.
It will assign DefaultChildPropertySetter if null.
It accepts a ChildPropertySetter instance or a Closure.
Sets the classLoader used to load a node's class.
Sets the current ClassNameResolver.
It will assign DefaultClassNameResolver if null.
It accepts a ClassNameResolver instance, a String, a Closure or a Map.
Sets the current IdentifierResolver.
It will assign DefaultIdentifierResolver if null.
It accepts a IdentifierResolver instance, a String or a Closure.
Sets whether references can be resolved lazily or not.
Sets the current NewInstanceResolver.
It will assign DefaultNewInstanceResolver if null.
It accepts a NewInstanceResolver instance or a Closure.
Sets the current ReferenceResolver.
It will assign DefaultReferenceResolver if null.
It accepts a ReferenceResolver instance, a String or a Closure.
Sets the current RelationNameResolver.
It will assign DefaultRelationNameResolver if null.
Copyright © 2003-2026 The Apache Software Foundation. All rights reserved.