Class SeqSplitter
java.lang.Object
org.btrplace.scheduler.runner.disjoint.splitter.SeqSplitter
- All Implemented Interfaces:
ConstraintSplitter<Seq>
public class SeqSplitter extends Object implements ConstraintSplitter<Seq>
Splitter for
Seq
constraints.
The splitting process is supported iff all the VMs belong to the same partitions.
If not, a UnsupportedOperationException
is thrown.
This operation is conservative wrt. the constraint semantic.
- Author:
- Fabien Hermenier
-
Constructor Summary
Constructors Constructor Description SeqSplitter()
-
Method Summary
Modifier and Type Method Description Class<Seq>
getKey()
Get the class of the Constraint associated to the splitter.boolean
split(Seq cstr, Instance origin, List<Instance> partitions, gnu.trove.map.hash.TIntIntHashMap vmsPosition, gnu.trove.map.hash.TIntIntHashMap nodePosition)
Ensure a given constraint fit into a single partition.
-
Constructor Details
-
SeqSplitter
public SeqSplitter()
-
-
Method Details
-
getKey
Description copied from interface:ConstraintSplitter
Get the class of the Constraint associated to the splitter.- Specified by:
getKey
in interfaceConstraintSplitter<Seq>
- Returns:
- a Class derived from
Constraint
-
split
public boolean split(Seq cstr, Instance origin, List<Instance> partitions, gnu.trove.map.hash.TIntIntHashMap vmsPosition, gnu.trove.map.hash.TIntIntHashMap nodePosition)Description copied from interface:ConstraintSplitter
Ensure a given constraint fit into a single partition. If necessary, the constraint may have be split. this call inserts the constrain (or its subdivisions) inside their respective instances- Specified by:
split
in interfaceConstraintSplitter<Seq>
- Parameters:
cstr
- the model constraintorigin
- the original instance to splitpartitions
- the possible partitions @returnfalse
iff this leads to a problem without solutions.vmsPosition
- the partition associated to each VMnodePosition
- the partition associated to each node- Returns:
true
iff the split was successful.false
otherwise
-