org.hypergraphdb.type
Class HGAtomTypeBase

java.lang.Object
  extended by org.hypergraphdb.type.HGAtomTypeBase
All Implemented Interfaces:
HGGraphHolder, HGAtomType
Direct Known Subclasses:
EnumType, EnumTypeConstructor, HGRelType, HGRelTypeConstructor, RecordTypeConstructor, TextType

public abstract class HGAtomTypeBase
extends java.lang.Object
implements HGAtomType

A base class for implementing HGAtomType. Holds a protected reference to the HyperGraph instance and implements subsumes with org.hypergraphdb.util.HGUtils.eq.

Author:
Borislav Iordanov

Constructor Summary
HGAtomTypeBase()
           
 
Method Summary
 void setHyperGraph(HyperGraph hg)
          During load time, set the HyperGraph instance to which this atom belongs.
 boolean subsumes(java.lang.Object general, java.lang.Object specific)
          A generic semantic predicate that returns true if the first argument is more general than the second.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.hypergraphdb.type.HGAtomType
make, release, store
 

Constructor Detail

HGAtomTypeBase

public HGAtomTypeBase()
Method Detail

setHyperGraph

public void setHyperGraph(HyperGraph hg)
Description copied from interface: HGGraphHolder

During load time, set the HyperGraph instance to which this atom belongs.

Specified by:
setHyperGraph in interface HGGraphHolder

subsumes

public boolean subsumes(java.lang.Object general,
                        java.lang.Object specific)
Description copied from interface: HGAtomType

A generic semantic predicate that returns true if the first argument is more general than the second. Atom types must implement this notion of specialization whenever meaningful in the context of the entities being constructed.

The notion of subsumption can be seen as partial equivalence, or equivalence in one direction only.

As a relation, subsumtion is transitive and reflexive. The latter implies that, at a minimum, the subsumes method must return true if general.equals(specific).

Specified by:
subsumes in interface HGAtomType
Parameters:
general - The object which might be more general. Cannot be null.
specific - The object which might be more specific. Cannot be null.
Returns:
true if specific can be used whenever general is required and false otherwise.