uk.ac.starlink.datanode.factory
Class SimpleDataNodeBuilder

java.lang.Object
  extended by uk.ac.starlink.datanode.factory.DataNodeBuilder
      extended by 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
protected SimpleDataNodeBuilder(Class nodeClass, Class argClass)
          Construct a new builder which will turn out DataNode of a given class from objects of a given class.
protected SimpleDataNodeBuilder(String name, Class argClass)
          Construct a new builder which will turn out DataNodes from objects of a given class (or its subclasses).
 
Method Summary
abstract  DataNode buildNode(Object obj)
          Builds a DataNode from a given object.
 Class getNodeClass()
          Returns the class which all nodes returned by the DataNodeBuilder.buildNode(java.lang.Object) method will belong to.
 boolean suitable(Class objClass)
          Determine whether this builder can be used to work on an object of a given class.
 String toString()
           
 
Methods inherited from class uk.ac.starlink.datanode.factory.DataNodeBuilder
getBuilders
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimpleDataNodeBuilder

protected SimpleDataNodeBuilder(String name,
                                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 produce
argClass - the class on which this node builder will operate

SimpleDataNodeBuilder

protected SimpleDataNodeBuilder(Class nodeClass,
                                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 building
argClass - the class on which this node bulider will operate
Method Detail

buildNode

public abstract DataNode buildNode(Object obj)
                            throws NoSuchDataException
Description copied from class: DataNodeBuilder
Builds a DataNode from a given object.

Specified by:
buildNode in class DataNodeBuilder
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()
Description copied from class: DataNodeBuilder
Returns the class which all nodes returned by the DataNodeBuilder.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 class DataNodeBuilder
Returns:
superclass of all the classes of DataNode this builder can build

suitable

public boolean suitable(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 class DataNodeBuilder
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 String toString()
Overrides:
toString in class Object


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