projects
/
Mograsim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ca786d4
)
Added sanity check; improved comments
author
Daniel Kirschten
<daniel.kirschten@gmx.de>
Wed, 17 Jul 2019 14:13:07 +0000
(16:13 +0200)
committer
Daniel Kirschten
<daniel.kirschten@gmx.de>
Wed, 17 Jul 2019 14:13:54 +0000
(16:13 +0200)
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java
patch
|
blob
|
history
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
index
d9dbdc4
..
b406228
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
@@
-10,8
+10,8
@@
public class ViewModelModifiable extends ViewModel
public String getDefaultComponentName(GUIComponent component)
{
Set<String> componentNames = getComponentsByName().keySet();
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)
// idForSerializingOverride is not yet set
// String componentID = null;
// if (component instanceof DeserializedSubmodelComponent)
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java
index
dd7af34
..
0e2328a
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/atomic/BitVectorSplittingAtomicHighLevelStateHandler.java
@@
-16,6
+16,7
@@
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh
private SubmodelComponent component;
private final List<String> vectorPartTargets;
private final List<Integer> vectorPartLengthes;
private SubmodelComponent component;
private final List<String> vectorPartTargets;
private final List<Integer> vectorPartLengthes;
+ private int length;
public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context)
{
public BitVectorSplittingAtomicHighLevelStateHandler(HighLevelStateHandlerContext context)
{
@@
-41,12
+42,14
@@
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh
{
vectorPartTargets.add(target);
vectorPartLengthes.add(length);
{
vectorPartTargets.add(target);
vectorPartLengthes.add(length);
+ this.length += length;
}
public void clearVectorParts()
{
vectorPartTargets.clear();
vectorPartLengthes.clear();
}
public void clearVectorParts()
{
vectorPartTargets.clear();
vectorPartLengthes.clear();
+ length = 0;
}
private void setVectorParts(List<String> targets, List<Integer> lengthes)
}
private void setVectorParts(List<String> targets, List<Integer> lengthes)
@@
-56,6
+59,7
@@
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh
throw new IllegalArgumentException("Targets list and lenghtes list have different sizes");
vectorPartTargets.addAll(targets);
vectorPartLengthes.addAll(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
}
@Override
@@
-72,7
+76,7
@@
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh
vectorPart = (BitVector) subStateUncasted;
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
vectorPart = (BitVector) subStateUncasted;
if (vectorPart.length() != vectorPartLengthes.get(partIndex))
throw new IllegalArgumentException(
- "I
llegal
vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
+ "I
ncorrect
vector part length: " + vectorPart.length() + "; expected " + vectorPartLengthes.get(partIndex));
result = vectorPart.concat(result);
}
return result;
result = vectorPart.concat(result);
}
return result;
@@
-82,6
+86,8
@@
public class BitVectorSplittingAtomicHighLevelStateHandler implements AtomicHigh
public void setHighLevelState(Object newState)
{
BitVector newStateCasted = (BitVector) newState;
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);
for (int partIndex = vectorPartTargets.size() - 1, bitIndex = 0; partIndex >= 0; partIndex--)
{
int vectorPartLength = vectorPartLengthes.get(partIndex);