Hi,
I wonder if this is possible in the current 3.1M release (or
will be possible in the 3.2 final)…. I need to concatenate field
constraints with ‘or’ logic, so smth like:
Record (fieldAsString matches “[xyz]” or
fieldAsInt > 1, $myOtherField : myOtherField)
The above is just to illustrate an idea (ie, the case above
can easily be written as ‘or’ concatenation of column constraints).
My ‘record’ object is far more complex. Moreover, the column
concatenation logic can contain over 4 different columns. Also, I need to use
field binding on the matched columns, eg:
Record (fieldAsString matches “[xyz]” or
fieldAsInt > 1, $myOtherField : myOtherField)
Record ($field : field, fieldAsString matches “[xyz]”
or fieldAsInt > 1, myOtherField == $myOtherField)
Record (field == $field)
Basically the idea is that I need to define both ‘string’
and ‘number’ constraints on a field. Eg, if ‘field’
value can be a number “1234567”, then constrains I want to have
might be:
-
field (as string) matches “123[0-9]{3}7”
-
field (as int) > 1230000
To do this I have different getters in my fact object linked
to the same field:
Class Record {
String field;
Public String getFieldAsString() {
Return field;
}
Public int getFieldAsInt() {
Return Integer.parseInt(field);
}
Public String getField() {
Return field;
}
}
I believe such thing is not possible to do with current
implementation. If not, is it planned for? If not, should it be planned for? It
seems like a very valid use case, since there is a set of applications where
business analysts want to define constraints as a combination of field as a
string pattern AND field as a number (in my particular example – constrains
on account numbers. The pattern is used to define ‘account types’,
while numeric range is used to define particular organizations with the account
type)
Thanks,
Vlad