Class AbstractC3StarMethodResolutionOrder<C extends AbstractConceptLike>

  • All Implemented Interfaces:
    MethodResolutionOrder<C>
    Direct Known Subclasses:
    C3StarMethodResolutionOrder

    public abstract class AbstractC3StarMethodResolutionOrder<C extends AbstractConceptLike>
    extends CachingMethodResolutionOrder<C>
    This class counts the linearization for a concept (method resolution order). It is almost C3, though it is fail-safe for the hierarchy like A impl B,C, C impl B. When the usual C3 algorithm fails our algorithm try to abandon the local order and preserve only super linearization. If that is not possible we pick up the first concept from the first super linearization.