[rules-users] from l18n syntax question
Waruzjan Shahbazian
wshahbazian at xiam.nl
Mon Dec 17 11:22:45 EST 2007
Hi all,
I have the following problem:
There is an Product classe which contains localized title with the getter:
public Localized<String> getTitle() {
return _title;
}
Localizes is a classe with private final Map<Locale, T> _bindings; and
has the public getter: public T get(Locale locale) {}
Now I want to check in the LHS of my rule if the title contains some
substring. I can do that with matches(regular expression), but how can I
best iterate in the localizede strings of the title?
I am now doing it with the following eval() way, but there must be a
better solution:
There are 2 languages in Localizes, so I can check that with the public
int size. There is also a methode get(Locale) to get the String of the
given local, but how can I use that here?
$prd : Product()
$title : Localized(size == 2) from $prd.getTitle()
eval( matchesLocalTestString($title, "(?i).*SUBSTRING.*") )
function boolean matchesLocalTestString(Localized locString, String
matchString) {
String tmpStr = (String) locString.get(LocaleUtils.DUTCH);
return tmpStr.matches(matchString) ;
}
The code above works, but I can't get the result of the eval and I don't
think this is the fastest way. So can anyone please help me with this?
Thanks,
Waruzjan Shahbazian
More information about the rules-users
mailing list