Class Personality<T>

Direct Known Subclasses:
GraphPersonality, NodePersonality

public class Personality<T> extends Object
Defines a set of permitted mappings from [interface] Class objects to Implementation factories that can generate instances of the facet represented by the Class.
  • Constructor Details

    • Personality

      public Personality()
      base constructor, does nothing [except implicitly create _types_]
    • Personality

      public Personality(Personality<T> other)
      initialise this personality with the bindings from _other_
  • Method Details

    • add

      public <X extends T> Personality<T> add(Class<X> interf, Implementation impl)
      Add a new interface and its implementation to this Personality.
      interf - The interface to add, expressed as a Type object.
      impl - A way of implementing _interf_.
    • copy

      public Personality<T> copy()
      create a new Personality copying this one; the _types_ state is copied, not shared.
    • getImplementation

      public <X extends T> Implementation getImplementation(Class<X> t)
      get the implementation for the specified type, returning null if there isn't one available.
    • add

      public Personality<T> add(Personality<T> p)
      extend this personality by adding in all the mappings from the argument _p_. return _this_ (for call chaining).
    • newInstance

      public <X extends T> X newInstance(Class<X> interf, Node n, EnhGraph that)
      make a new instance of a type _interf_ based on the node _n_ and the polymorphic _that_; use the implementation wrapper for _interf_ in _types_.