It will work but it isn't at all declarative but instead very procedural - it is
effectively the same as retrieving all the rows from the database and then filtering them
yourself.
You've also failed to inform drools that you have updated the CustomerInfo object.
Assuming customerName is a string in terms of java code it is also extremely inefficient
and verbose (and badly broken as data isn't defined).
String has the replace and replaceAll methods to replace characters far more efficiently
than the approach below.
I'd probably have something like
Rule "Wild char validation"
When
c: CustomerInfo(name : customerName matches ".*([\*#].*") //any string
containing a * or a #
then
modify(c) {
setCustomerName(name.replaceAll("[\*#]", ""));
//replace any * or # with ""
}
end
if you don't like regex you could also do
Rule "Wild char validation"
When
c: CustomerInfo(eval(customerName.contains("*") ||
customerName.contains("#"))) //any string containing a * or a #
then
String name = c.getCustomerName();
name = name.replace("#","");
name = name.replace("*","");
modify(c) {
setCustomerName(name);
}
end
other similar variations are available - depending on your throughput you may want to
experiment with whether there are many differences in terms of performance.
Thomas
-----Original Message-----
From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-
bounces(a)lists.jboss.org] On Behalf Of Lalitha
Sent: 03 January 2012 12:02
To: rules-users(a)lists.jboss.org
Subject: [rules-users] Removing Special Characters
Hi all,
I am working on drools. I would like to remove Special characters which are
existed in the data i.e. replacing special characters with null.
Following is the code:
rule "Wild Character validation"
when
c : CustomerInfo(customerName != "");
then
int l = c.length();
int ch = 0;
int i = 0;
for (i = 0; i < l; i++) {
if (data.charAt(i) != "*"|| data.charAt(i) != "#"){
continue;
}
ch++;
data.setCharAt(i, "");
}
c.setCustomerName(data);
end
Is there any wrong in this code? If so please help me out. Waiting for your
suggestion .
Thanks and Regards,
Lalitha.
--
View this message in context:
http://drools.46999.n3.nabble.com/Removing-
Special-Characters-tp3628821p3628821.html
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
**************************************************************************************
This message is confidential and intended only for the addressee. If you have received
this message in error, please immediately notify the postmaster(a)nds.com and delete it from
your system as well as any copies. The content of e-mails as well as traffic data may be
monitored by NDS for employment and security purposes. To protect the environment please
do not print this e-mail unless necessary.
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United
Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603
8808 40-00
**************************************************************************************