com.advancedpwr.record
Class BeanRecorder
java.lang.Object
com.advancedpwr.record.ClassWriter
com.advancedpwr.record.AbstractRecorder
com.advancedpwr.record.BeanRecorder
- All Implemented Interfaces:
- ObjectRecorder
- Direct Known Subclasses:
- MockBeanRecorder, MockBehaviorRecorder
public class BeanRecorder
- extends AbstractRecorder
An ObjectRecorder that records the state of an object tree as a Java class file. This recorder uses
reflection to inspect an object tree for Java Bean style setter / getter accessor methods, therefore it is only
capable of reconstructing an object tree through that convention. Many web service return data structures adhere
to the Java Bean accessor convention, so this class may be of use in recording a web service response for use in
unit testing.
Recording example:
Person person = new Person();
person.setName( "Jim" );
Person dad = new Person();
dad.setName( "John" );
person.setDad( dad );
BeanRecorder recorder = new BeanRecorder();
recorder.setDestination( "recordings" );
recorder.record( person );
The above example will record the object tree of the "person" instance as a Java class:
public class PersonFactory
{
protected Person person;
public Person buildPerson()
{
person = new Person();
person.setDad( buildPerson_1_1() );
person.setName( "Jim" );
return person;
}
protected Person person_1_1;
protected Person buildPerson_1_1()
{
dad_1_1 = new Person();
dad_1_1.setName( "John" );
return person_1_1;
}
}
To reconstruct the instance of "person" in a unit test:
Person person = new PersonFactory().buildPerson();
The BeanRecorder is "instance aware" and supports Collection and Map objects.
- Author:
- Matthew Avery, mavery@advancedpwr.com on Jun 22, 2010
| Fields inherited from class com.advancedpwr.record.ClassWriter |
CLASS, fieldDescriptor, fieldObject, fieldPrintWriter, fieldSuperClass, IMPORT, PACKAGE, PRIVATE, PROTECTED, PUBLIC, SPACE, tabDepth |
| Methods inherited from class com.advancedpwr.record.AbstractRecorder |
close, createDefaultDescriptor, createFileWriter, getDestination, getJavaFileWriter, javaFile, objectClass, packagePath, parentDirectory, setDestination, setDestination |
| Methods inherited from class com.advancedpwr.record.ClassWriter |
closeBrace, extendClass, getClassName, getDescriptor, getPackageName, getSuperClass, newLine, openBrace, packageName, setClassName, setDescriptor, setSuperClass, setWriter, tab, tabs, write, writeClassDeclaration, writeImports, writeLine, writeObject, writePackage |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
fieldInstanceTree
protected InstanceTree fieldInstanceTree
fieldFactoryBuilder
protected MethodBuilderFactory fieldFactoryBuilder
fieldStopClasses
protected Set<Class> fieldStopClasses
BeanRecorder
public BeanRecorder()
setObject
protected void setObject(Object object)
- Overrides:
setObject in class ClassWriter
createInstanceTree
protected InstanceTree createInstanceTree(Object object)
record
public <T> T record(T inObject)
closeFile
protected void closeFile()
writeObjectBuilderMethod
protected void writeObjectBuilderMethod()
- Specified by:
writeObjectBuilderMethod in class ClassWriter
createMethodBuilder
protected BuildMethodWriter createMethodBuilder(AccessPath result)
getObject
protected Object getObject()
- Overrides:
getObject in class ClassWriter
getInstanceTree
protected InstanceTree getInstanceTree()
classes
protected Set<Class> classes()
- Specified by:
classes in class ClassWriter
getFactoryBuilder
protected MethodBuilderFactory getFactoryBuilder()
createMethodBuilderFactory
protected MethodBuilderFactory createMethodBuilderFactory()
addBuilderFactory
public void addBuilderFactory(MethodWriterFactory inFactory)
getPrintWriter
public PrintWriter getPrintWriter()
- Overrides:
getPrintWriter in class ClassWriter
stopDescent
public void stopDescent(Class inClass)
getStopClasses
public Set getStopClasses()
Copyright © 2011 Advanced Power Co. All Rights Reserved.