uk.ac.starlink.datanode.factory
Class DataNodeBuilder

java.lang.Object
  extended by uk.ac.starlink.datanode.factory.DataNodeBuilder
Direct Known Subclasses:
DocumentDataNodeBuilder, FileDataNodeBuilder, SimpleDataNodeBuilder, SourceDataNodeBuilder, StringDataNodeBuilder, VODataNodeBuilder, XMLDataNodeBuilder

public abstract class DataNodeBuilder
extends Object

Constructs a DataNode from an Object using a particular method or constructor. Instances of this class are the basic building blocks used by DataNodeFactory to do its DataNode construction.


Constructor Summary
DataNodeBuilder()
           
 
Method Summary
abstract  DataNode buildNode(Object obj)
          Builds a DataNode from a given object.
static DataNodeBuilder[] getBuilders(Class clazz)
          Returns an array of DataNodeBuilder objects which are all the ones that can be found by reflection in the supplied class.
 Class getNodeClass()
          Returns the class which all nodes returned by the buildNode(java.lang.Object) method will belong to.
abstract  boolean suitable(Class objClass)
          Determine whether this builder can be used to work on an object of a given class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataNodeBuilder

public DataNodeBuilder()
Method Detail

suitable

public abstract boolean suitable(Class objClass)
Determine whether this builder can be used to work on an object of a given class.

Parameters:
objClass - the class of an object which might be passed as the argument of buildNode
Returns:
whether it's OK to do that

buildNode

public abstract DataNode buildNode(Object obj)
                            throws NoSuchDataException
Builds a DataNode from a given object.

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 Class getNodeClass()
Returns the class which all nodes returned by the 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.

Returns:
superclass of all the classes of DataNode this builder can build

getBuilders

public static DataNodeBuilder[] getBuilders(Class clazz)
Returns an array of DataNodeBuilder objects which are all the ones that can be found by reflection in the supplied class.

Parameters:
clazz - a class to reflect on
Returns:
an array of builder objects found in clazz


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.