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 Details

    • 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 Details

    • 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