Package it.univr.di.cstnu.graph
Interface CSTNPSUEdge
- All Superinterfaces:
BasicCSTNUEdge
,Comparable<Component>
,Component
,CSTNEdge
,Edge
,Serializable
- All Known Implementing Classes:
CSTNPSUEdgePluggable
Represents the behavior of a CSTNPSU edge.
A CSTNPSU edge is a CSTNU
edge where it is also possible to have more lower-case values.
So, lower-case values are represented as a set of lower-case values.
LabeledLowerCaseValue
is NOT used.
To promote greater efficiency, some methods return a view of the internal data structures (they are all methods that return a set of Entry
).
Such a view could be dangerous because it could be modified directly (don't do that!) Such methods must be used only to read-only scan the labeled values or the labeled values' labels efficiently. Moreover, such views are not more valid if a value is added to or removed from the edge.
- Version:
- $Rev: 993 $
- Author:
- posenato
-
Nested Class Summary
Nested classes/interfaces inherited from interface it.univr.di.cstnu.graph.Edge
Edge.ConstraintType
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Clears the labeled lowercase values.it.unimi.dsi.fastutil.objects.ObjectSet
<it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry<ALabel, it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>>> Don't use this set for scanning that requires modifying the internal map; otherwise, this set will become invalid after the first modification.it.unimi.dsi.fastutil.objects.ObjectSet
<Label> it.unimi.dsi.fastutil.objects.ObjectSet
<Label> getLabelsOfLowerCaseValues
(ALabel aLabel) it.unimi.dsi.fastutil.objects.ObjectSet
<ALabel> int
getLowerCaseValue
(Label l, ALabel name) it.unimi.dsi.fastutil.objects.ObjectSet
<it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry<ALabel, it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>>> Don't use this set for scanning that requires modifying the internal map; otherwise, this set will become invalid after the first modification.it.unimi.dsi.fastutil.objects.ObjectSet
<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> getLowerCaseValues
(ALabel lowerCaseLabel) it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry
<Label, it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<ALabel>> boolean
mergeLowerCaseValue
(Label l, ALabel nodeName, int i) Merge a lower label constraint with valuei
for the node namen
with labell
.void
removeLowerCaseValue
(Label l, ALabel n) void
setLowerCaseValues
(LabeledALabelIntTreeMap lowerCaseValue) Methods inherited from interface it.univr.di.cstnu.graph.BasicCSTNUEdge
clearLowerCaseValue, clearUpperCaseValues, getAllUpperCaseAndLabeledValues, getLabelsOfUpperCaseValues, getLabelsOfUpperCaseValues, getMinUpperCaseValue, getMinUpperCaseValue, getUpperCaseLabels, getUpperCaseValue, getUpperCaseValues, getUpperCaseValues, lowerCaseValueAsString, lowerCaseValueSize, mergeUpperCaseValue, putLowerCaseValue, putUpperCaseValue, removeUpperCaseValue, setUpperCaseValueMap, size, upperCaseValuesAsString, upperCaseValueSize
Methods inherited from interface java.lang.Comparable
compareTo
Methods inherited from interface it.univr.di.cstnu.graph.Component
clear, equals, equalsByName, getName, hashCode, inNegativeCycle, setInNegativeCycle, setName, toString
Methods inherited from interface it.univr.di.cstnu.graph.CSTNEdge
getLabeledIntMapImplClass, getLabeledValues, getLabelsOfLabeledValues, getMinLabeledValue, getMinValue, getMinValueSubsumedBy, getValue, labeledValuesAsString, mergeLabeledValue, mergeLabeledValue, mergeLabeledValues, putLabeledValue, removeLabeledValue, setLabeledValueMap
Methods inherited from interface it.univr.di.cstnu.graph.Edge
getConstraintType, hasSameValues, isContingentEdge, isCSTNEdge, isCSTNPSUEdge, isCSTNUEdge, isEmpty, isOSTNUEdge, isRequirementEdge, isSTNEdge, isSTNUEdge, newInstance, newInstance, newInstance, setConstraintType, takeIn
-
Method Details
-
clearLowerCaseValues
void clearLowerCaseValues()Clears the labeled lowercase values. -
getAllLowerCaseAndLabeledValues
it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry<ALabel,it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>>> getAllLowerCaseAndLabeledValues()Don't use this set for scanning that requires modifying the internal map; otherwise, this set will become invalid after the first modification.- Returns:
- the set of all labeled values and all labeled lower-case ones. The labeled values have an empty ALabel.
-
getLabelsOfLowerCaseValues
- Parameters:
aLabel
- the lower-case label- Returns:
- the set of all labels associated with lower-case label aLabel.
-
getLabelsOfLowerCaseValues
it.unimi.dsi.fastutil.objects.ObjectSet<Label> getLabelsOfLowerCaseValues()- Returns:
- the set of all labels associated with all lower-case labeled values;
-
getLowerCaseLabels
it.unimi.dsi.fastutil.objects.ObjectSet<ALabel> getLowerCaseLabels()- Returns:
- the set of all lower-case labels.
-
getLowerCaseValue
- Parameters:
l
- aLabel
object.name
- aALabel
node name.- Returns:
- the labeled lower-case value.
Constants.INT_NULL
if the value does not exist.
-
getLowerCaseValues
it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry<ALabel,it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>>> getLowerCaseValues()Don't use this set for scanning that requires modifying the internal map; otherwise, this set will become invalid after the first modification.- Returns:
- the set of all labeled lower-case values.
-
setLowerCaseValues
- Parameters:
lowerCaseValue
- the labeled lower case value to use for initializing the current one.
-
getLowerCaseValues
@Nonnull it.unimi.dsi.fastutil.objects.ObjectSet<it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<Label>> getLowerCaseValues(@Nonnull ALabel lowerCaseLabel) - Parameters:
lowerCaseLabel
- a non-null lower-case label.- Returns:
- a view of the lower-case values associated with lowerCaseLabel if there are some of them, an empty set otherwise.
-
getMinLowerCaseValue
it.unimi.dsi.fastutil.objects.Object2ObjectMap.Entry<Label,it.unimi.dsi.fastutil.objects.Object2IntMap.Entry<ALabel>> getMinLowerCaseValue()- Returns:
- a copy of the minimal value (with the ALabel) among all upper-case labeled values if there are some of them, null otherwise.
-
mergeLowerCaseValue
Merge a lower label constraint with valuei
for the node namen
with labell
.- Parameters:
l
- It cannot be null or empty.nodeName
- the node name. It cannot be null. It must be the unmodified name of the node.i
- It cannot be null.- Returns:
- true if the merge has been successful.
-
removeLowerCaseValue
-