Package uk.ac.starlink.datanode.factory
Class SimpleDataNodeBuilder
- java.lang.Object
-
- uk.ac.starlink.datanode.factory.DataNodeBuilder
-
- uk.ac.starlink.datanode.factory.SimpleDataNodeBuilder
-
public abstract class SimpleDataNodeBuilder extends DataNodeBuilder
An abstract DataNodeBuilder providing a template for builders which build nodes from instances of a given class. This class doesn't do anything clever, it's just a convenience for subclasses.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSimpleDataNodeBuilder(java.lang.Class nodeClass, java.lang.Class argClass)Construct a new builder which will turn out DataNode of a given class from objects of a given class.protectedSimpleDataNodeBuilder(java.lang.String name, java.lang.Class argClass)Construct a new builder which will turn out DataNodes from objects of a given class (or its subclasses).
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract DataNodebuildNode(java.lang.Object obj)Builds a DataNode from a given object.java.lang.ClassgetNodeClass()Returns the class which all nodes returned by theDataNodeBuilder.buildNode(java.lang.Object)method will belong to.booleansuitable(java.lang.Class objClass)Determine whether this builder can be used to work on an object of a given class.java.lang.StringtoString()-
Methods inherited from class uk.ac.starlink.datanode.factory.DataNodeBuilder
getBuilders
-
-
-
-
Constructor Detail
-
SimpleDataNodeBuilder
protected SimpleDataNodeBuilder(java.lang.String name, java.lang.Class argClass)Construct a new builder which will turn out DataNodes from objects of a given class (or its subclasses).- Parameters:
name- the name of this builder - this should normally be the classname of the DataNodes it will produceargClass- the class on which this node builder will operate
-
SimpleDataNodeBuilder
protected SimpleDataNodeBuilder(java.lang.Class nodeClass, java.lang.Class argClass)Construct a new builder which will turn out DataNode of a given class from objects of a given class. Just invokes SimpleDataNodeBuilder(nodeClass.getName(),argClass).- Parameters:
nodeClass- the class of DataNode objects which this builder will be buildingargClass- the class on which this node bulider will operate
-
-
Method Detail
-
buildNode
public abstract DataNode buildNode(java.lang.Object obj) throws NoSuchDataException
Description copied from class:DataNodeBuilderBuilds a DataNode from a given object.- Specified by:
buildNodein classDataNodeBuilder- Parameters:
obj- the object to build a datanode from- Returns:
- a new DataNode made from obj
- Throws:
NoSuchDataException- if no new node can be created
-
getNodeClass
public java.lang.Class getNodeClass()
Description copied from class:DataNodeBuilderReturns the class which all nodes returned by theDataNodeBuilder.buildNode(java.lang.Object)method will belong to. DataNodeBuilder's implementation of this returns DataNode.class, but implementations which can be more specific should override this method.- Overrides:
getNodeClassin classDataNodeBuilder- Returns:
- superclass of all the classes of DataNode this builder can build
-
suitable
public boolean suitable(java.lang.Class objClass)
Description copied from class:DataNodeBuilderDetermine whether this builder can be used to work on an object of a given class.- Specified by:
suitablein classDataNodeBuilder- Parameters:
objClass- the class of an object which might be passed as the argument of buildNode- Returns:
- whether it's OK to do that
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-