package de.gaalop.gapp.instructionSet; import de.gaalop.gapp.PosSelectorset; import de.gaalop.gapp.Selectorset; import de.gaalop.gapp.variables.GAPPMultivector; import de.gaalop.gapp.variables.GAPPSetOfVariables; import de.gaalop.gapp.visitor.GAPPVisitor; /** * Represents the setMv command in the GAPP IR. */ public class GAPPSetMv extends GAPPBaseInstruction { private GAPPMultivector destination; private GAPPSetOfVariables source; private PosSelectorset selectorsDest; private Selectorset selectorsSrc; public GAPPSetMv(GAPPMultivector destination, GAPPSetOfVariables source, PosSelectorset selectorsDest, Selectorset selectorsSrc) { this.destination = destination; this.source = source; this.selectorsDest = selectorsDest; this.selectorsSrc = selectorsSrc; assert (selectorsDest.size() == selectorsSrc.size()); } @Override public Object accept(GAPPVisitor visitor, Object arg) { return visitor.visitSetMv(this, arg); } public GAPPMultivector getDestination() { return destination; } public PosSelectorset getSelectorsDest() { return selectorsDest; } public Selectorset getSelectorsSrc() { return selectorsSrc; } public GAPPSetOfVariables getSource() { return source; } public void setDestination(GAPPMultivector destination) { this.destination = destination; } public void setSelectorsDest(PosSelectorset selectorsDest) { this.selectorsDest = selectorsDest; } public void setSelectorsSrc(Selectorset selectorsSrc) { this.selectorsSrc = selectorsSrc; } public void setSource(GAPPSetOfVariables source) { this.source = source; } }