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 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.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).
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract DataNode
buildNode(java.lang.Object obj)
Builds a DataNode from a given object.java.lang.Class
getNodeClass()
Returns the class which all nodes returned by theDataNodeBuilder.buildNode(java.lang.Object)
method will belong to.boolean
suitable(java.lang.Class objClass)
Determine whether this builder can be used to work on an object of a given class.java.lang.String
toString()
-
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:DataNodeBuilder
Builds a DataNode from a given object.- Specified by:
buildNode
in 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:DataNodeBuilder
Returns 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:
getNodeClass
in 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:DataNodeBuilder
Determine whether this builder can be used to work on an object of a given class.- Specified by:
suitable
in 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:
toString
in classjava.lang.Object
-
-