An anonymous array is a list of elements in the form of {
} where each element can be of any type. Anonymous arrays can be used only as arguments in calls to user-defined constraints. To the definition side of constraints, anonymous arrays are just the same as usual arrays. The following example illustrates how to use anonymous arrays.
class RightAlignedHelloWorlds {
Label lb {text == "Hello World!"};
Button bt {text == "Hello World!"};
TextField tf {text == "Hello World!"};
rightAligned({lb,bt,tf});
}
constraint rightAligned(Object[] objs){
for (i in 0 .. objs.length-2){
objs[i].x+objs[i].width==objs[i+1].x+objs[i+1].width;
}
}
Because elements of anonymous arrays can be heterogeneous, we sometimes want to write different constraints depending on the types of elements. To check element types, we use the X instanceof Y constraint, which is true when X is an instance of class Y.