package net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic;
import java.util.ArrayList;
package net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic;
import java.util.ArrayList;
import java.util.List;
import net.mograsim.logic.core.types.Bit;
import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
import java.util.List;
import net.mograsim.logic.core.types.Bit;
import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
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
{
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
{
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
"Incorrect vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
"Incorrect vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
BitVector newStateCasted = (BitVector) newState;
if (newStateCasted.length() != length)
throw new IllegalArgumentException("Incorrect vector length: " + newStateCasted.length() + "; expected " + length);
BitVector newStateCasted = (BitVector) newState;
if (newStateCasted.length() != length)
throw new IllegalArgumentException("Incorrect vector length: " + newStateCasted.length() + "; expected " + length);
{
int vectorPartLength = vectorPartLengthes.get(partIndex);
BitVector vectorPart = newStateCasted.subVector(bitIndex, bitIndex + vectorPartLength);
{
int vectorPartLength = vectorPartLengthes.get(partIndex);
BitVector vectorPart = newStateCasted.subVector(bitIndex, bitIndex + vectorPartLength);
- public BitVectorSplittingAtomicHighLevelStateHandlerParams getParamsForSerializing(IdentifierGetter idGetter)
+ public String getIDForSerializing(IdentifyParams idParams)
+ {
+ return "bitVectorSplitting";
+ }
+
+ @Override
+ public BitVectorSplittingAtomicHighLevelStateHandlerParams getParamsForSerializing(IdentifyParams idParams)
{
BitVectorSplittingAtomicHighLevelStateHandlerParams params = new BitVectorSplittingAtomicHighLevelStateHandlerParams();
params.vectorPartTargets = new ArrayList<>(vectorPartTargets);
{
BitVectorSplittingAtomicHighLevelStateHandlerParams params = new BitVectorSplittingAtomicHighLevelStateHandlerParams();
params.vectorPartTargets = new ArrayList<>(vectorPartTargets);