|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.amazon.carbonado.synthetic.SyntheticStorableBuilder
public class SyntheticStorableBuilder
Allows the definition of very simple synthetic storables. Only a primary key index can be defined; at least one property must be a primary key property. A property can be nullable and can be specified as the version property. This class acts both as builder factory and as builder.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface com.amazon.carbonado.synthetic.SyntheticBuilder |
|---|
SyntheticBuilder.ClassNameProvider |
| Constructor Summary | |
|---|---|
SyntheticStorableBuilder(String name,
ClassLoader loader)
|
|
| Method Summary | |
|---|---|
SyntheticKey |
addAlternateKey()
Add an alternate key to be built. |
SyntheticIndex |
addIndex()
Add an index to the set managed by this builder. |
SyntheticKey |
addPrimaryKey()
Add a primary key to be built. |
SyntheticProperty |
addProperty(String name,
Class type)
Add a property to the set managed by this builder. |
SyntheticProperty |
addProperty(SyntheticProperty prop)
Add an externally defined synthetic property to the list |
Class<? extends Storable> |
build()
Convenience method to generate the class. |
protected boolean |
definePropertyBeanMethods(ClassFile cf,
SyntheticProperty property)
Add the get & set methods for this property |
SyntheticBuilder.ClassNameProvider |
getClassNameProvider()
|
protected String |
getName()
Frequently used by the SyntheticBuilder.ClassNameProvider as a
basis for the generated classname |
protected List<SyntheticProperty> |
getPropertyList()
Frequently used by the SyntheticBuilder.ClassNameProvider as a
basis for the generated classname |
Class<? extends Storable> |
getStorableClass()
|
boolean |
hasProperty(String name)
Check to see if a particular property has already been added to the list of properties to generate |
boolean |
isVersioned()
Returns true if a property with the version attribute has been addded |
ClassFileBuilder |
prepare()
|
void |
setClassNameProvider(SyntheticBuilder.ClassNameProvider classNameProvider)
|
void |
setEvolvable(boolean evolvable)
By default, generated storable implements the Unevolvable marker interface, which can affect how it is encoded. |
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SyntheticStorableBuilder(String name,
ClassLoader loader)
name - base name for the generated class. This is usually a fully qualified
name, a la "com.amazon.carbonado.storables.happy.synthetic.storable"loader - ClassLoader to use for the generated class| Method Detail |
|---|
public ClassFileBuilder prepare()
throws SupportException
prepare in interface SyntheticBuilderClassFileBuilder ready for further decoration or building
SupportExceptionpublic Class<? extends Storable> getStorableClass()
getStorableClass in interface SyntheticBuilderSyntheticBuilder.prepare() already have been called
prior to calling this method.
public Class<? extends Storable> build()
throws SupportException
SyntheticBuilderSyntheticBuilder.prepare() and return the result of
generating the class from that classfile. If the caller does not
wish to regenerate the class from scratch, use SyntheticBuilder.getStorableClass() instead.
build in interface SyntheticBuilderSupportException
public SyntheticProperty addProperty(String name,
Class type)
SyntheticBuilder
addProperty in interface SyntheticBuildername - of the propertytype - of the property
public SyntheticProperty addProperty(SyntheticProperty prop)
SyntheticBuilder
addProperty in interface SyntheticBuilderprop - to add
public boolean hasProperty(String name)
SyntheticBuilder
hasProperty in interface SyntheticBuilderpublic SyntheticKey addPrimaryKey()
SyntheticBuilder
addPrimaryKey in interface SyntheticBuilderpublic SyntheticKey addAlternateKey()
SyntheticBuilder
addAlternateKey in interface SyntheticBuilderpublic SyntheticIndex addIndex()
SyntheticBuilder
addIndex in interface SyntheticBuilderpublic boolean isVersioned()
SyntheticBuilder
isVersioned in interface SyntheticBuilderpublic SyntheticBuilder.ClassNameProvider getClassNameProvider()
public void setClassNameProvider(SyntheticBuilder.ClassNameProvider classNameProvider)
classNameProvider - The classNameProvider to set.public void setEvolvable(boolean evolvable)
Pass in true to change from the default behavior, and not implement Unevolvable. When doing so, a ClassNameProvider should also be provided to ensure consistent naming which does not include property names.
protected boolean definePropertyBeanMethods(ClassFile cf,
SyntheticProperty property)
protected String getName()
SyntheticBuilder.ClassNameProvider as a
basis for the generated classname
protected List<SyntheticProperty> getPropertyList()
SyntheticBuilder.ClassNameProvider as a
basis for the generated classname
public String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||