import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
import net.mograsim.logic.model.serializing.IdentifyParams;
import net.mograsim.logic.model.snippets.SnippetDefinintion;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.HighLevelStateHandlerContext;
import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandlerSnippetSuppliers;
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHighLevelStateHandler
private final List<Integer> vectorPartLengthesUnmodifiable;
private int length;
- public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context)
+ public BitVectorSplittingAtomicHighLevelStateHandler(SubmodelComponent component)
{
- this(context, null);
+ this(component, null);
}
- public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context,
+ public BitVectorSplittingAtomicHighLevelStateHandler(SubmodelComponent component,
BitVectorSplittingAtomicHighLevelStateHandlerParams params)
{
- this.component = context.component;
+ this.component = component;
this.vectorPartTargets = new ArrayList<>();
this.vectorPartTargetsUnmodifiable = Collections.unmodifiableList(vectorPartTargets);
this.vectorPartLengthes = new ArrayList<>();
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
"Incorrect vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
- result = vectorPart.concat(result);
+ result = result.concat(vectorPart);
}
return result;
}
BitVector newStateCasted = (BitVector) newState;
if (newStateCasted.length() != length)
throw new IllegalArgumentException("Incorrect vector length: " + newStateCasted.length() + "; expected " + length);
- for (int partIndex = vectorPartTargets.size() - 1, bitIndex = 0; partIndex >= 0; partIndex--)
+ for (int partIndex = 0, bitIndex = 0; partIndex < vectorPartTargets.size(); partIndex++)
{
int vectorPartLength = vectorPartLengthes.get(partIndex);
BitVector vectorPart = newStateCasted.subVector(bitIndex, bitIndex + vectorPartLength);