/** * */ package agg.xt_basis.agt; import agg.xt_basis.OrdinaryMorphism; import agg.xt_basis.Rule; /** * @author olga * * This class stores some help morphisms which are created during computation * of amalgamated rule and match based on an interaction rule scheme. * <code>agg.xt_agt.Covering</code> class is the creator class of these help morphisms. */ public class AmalgamationRuleData { /** * The rule of this data. * It can be KernelRule or MultiRule. */ public Rule rule; /** * An isomorphic morphism of the left graph of the rule * into a copy of this graph. */ public OrdinaryMorphism isoCopyLeft; /** * An isomorphic morphism of the right graph of the rule * into a copy of this graph. */ public OrdinaryMorphism isoCopyRight; /** * A morphism of the left graph of the kernel rule of a rule scheme * into the target graph of a morphism <code>isoCopyLeft</code>. */ public OrdinaryMorphism LkernelLinst; /** * A morphism of the right graph of the kernel rule of a rule scheme * into the target graph of a morphism <code>isoCopyRight</code>. */ public OrdinaryMorphism RkernelRinst; /** * A morphism of the target graph of the <code>isoCopyLeft</code> * into the target graph of the current match of a rule (kernel or multi). * The target graph of the match is the host graph. */ public OrdinaryMorphism instMatch; /** * An instance rule based on match of a rule. */ public Rule instRule; /** * A morphism of the target graph of the <code>LkernelLinst</code> * into a colimit graph that will be the left graph of the amalgamated rule. */ public OrdinaryMorphism leftRequestEdge; /** * A morphism of the target graph of the <code>RkernelRinst</code> * into a colimit graph that will be the right graph of the amalgamated rule. */ public OrdinaryMorphism rightRequestEdge; /** * Creates a help data instance of the specified Rule. * All morphisms are not initialized. * The creator class of these morphisms is <code>agg.xt_agt.Covering</code>. * * @param r Rule of help data */ public AmalgamationRuleData(final Rule r) { this.rule = r; } }