Class DataNodeBuilder

java.lang.Object
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 Details

    • DataNodeBuilder

      public DataNodeBuilder()
  • Method Details

    • 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