public String getDefaultComponentName(GUIComponent component)
{
Set<String> componentNames = getComponentsByName().keySet();
- // TODO get the ID of component^^
- // The following does not work because this code is called in the constructor of DeserializedSubmodelComponent at a time where
+ // TODO get the ID of component
+ // The following does not work because this method is called in the constructor of DeserializedSubmodelComponent at a time where
// idForSerializingOverride is not yet set
// String componentID = null;
// if (component instanceof DeserializedSubmodelComponent)
private SubmodelComponent component;
private final List<String> vectorPartTargets;
private final List<Integer> vectorPartLengthes;
+ private int length;
public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context)
{
{
vectorPartTargets.add(target);
vectorPartLengthes.add(length);
+ this.length += length;
}
public void clearVectorParts()
{
vectorPartTargets.clear();
vectorPartLengthes.clear();
+ length = 0;
}
private void setVectorParts(List<String> targets, List<Integer> lengthes)
throw new IllegalArgumentException("Targets list and lenghtes list have different sizes");
vectorPartTargets.addAll(targets);
vectorPartLengthes.addAll(lengthes);
+ length += lengthes.stream().mapToInt(Integer::intValue).sum();
}
@Override
vectorPart = (BitVector) subStateUncasted;
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
- "Illegal vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
+ "Incorrect vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
result = vectorPart.concat(result);
}
return result;
public void setHighLevelState(Object newState)
{
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--)
{
int vectorPartLength = vectorPartLengthes.get(partIndex);