Class AbstractC3StarMethodResolutionOrder<C extends AbstractConceptLike>
- java.lang.Object
 - 
- jetbrains.mps.core.aspects.behaviour.api.CachingMethodResolutionOrder<C>
 - 
- jetbrains.mps.core.aspects.behaviour.AbstractC3StarMethodResolutionOrder<C>
 
 
 
- 
- 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. 
- 
- 
Constructor Summary
Constructors Constructor Description AbstractC3StarMethodResolutionOrder() 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected List<C>calcLinearization0(C concept)we cache the result of thisprotected abstract List<C>getImmediateParents(C concept)- 
Methods inherited from class jetbrains.mps.core.aspects.behaviour.api.CachingMethodResolutionOrder
calcLinearization, reset 
 - 
 
 - 
 
- 
- 
Method Detail
- 
calcLinearization0
@NotNull protected List<C> calcLinearization0(@NotNull C concept)
Description copied from class:CachingMethodResolutionOrderwe cache the result of this- Specified by:
 calcLinearization0in classCachingMethodResolutionOrder<C extends AbstractConceptLike>- See Also:
 MethodResolutionOrder.calcLinearization(AbstractConceptLike)
 
 - 
 
 -