Rectangle
class, except that objects of this type are immutable.
{@link Bounds} are basically an abstraction for an area in a UI. Such an area always has an origin point andwidth + height.
@since 0.9A Bounds object maps a {@link kodkod.ast.Relation relation} r to two{@link kodkod.instance.TupleSet sets of tuples}, rL and rU, which represent the lower and upper bounds on the {@link kodkod.instance.Tuple set of tuples} to which an {@link kodkod.instance.Instance instance}based on these bounds may map r. The set rL represents all the tuples that a given relation must contain. The set rU represents all the tuples that a relation may contain. All bounding sets range over the same {@link kodkod.instance.Universe universe}.
A Bounds object also maps integers to singleton tupleset that represent them. A tupleset may represent more than one integer, but an integer is represented by at most one tupleset.
@specfield universe: Universe @specfield relations: set Relation @specfield intBound: int -> lone TupleSet @specfield lowerBound: relations -> one TupleSet @specfield upperBound: relations -> one TupleSet @invariant all i: intBound.TupleSet | intBound[i].size() = 1 && intBound[i].arity() = 1 @invariant lowerBound[relations].universe = upperBound[relations].universe = universe @invariant all r: relations | lowerBound[r].arity = upperBound[r].arity = r.arity @invariant all r: relations | lowerBound[r].tuples in upperBound[r].tuples @author Emina TorlakProvides only the methods required by the metazelda algorithm. AWT-independent so that it may be used on platforms without AWT (e.g. Android).
The following features are supported:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|