details:   /erp/devel/pi/rev/2988ef2a1022
changeset: 10527:2988ef2a1022
user:      Iván Perdomo <ivan.perdomo <at> openbravo.com>
date:      Thu Feb 10 14:12:40 2011 +0100
summary:   Added support for getting a expression from a Java class

details:   /erp/devel/pi/rev/e32b87eecd05
changeset: 10528:e32b87eecd05
user:      Iván Perdomo <ivan.perdomo <at> openbravo.com>
date:      Thu Feb 10 14:13:14 2011 +0100
summary:   Added sample test for FilterExpression

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/FilterExpression.java
                          |  30 ++++++++
 
modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
                                |  13 +++
 
modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/ExpressionsTest.java
        |  16 ++++-
 
modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/SampleFilterExpression.java
 |  35 ++++++++++
 4 files changed, 93 insertions(+), 1 deletions(-)

diffs (139 lines):

diff -r ce6986db003f -r e32b87eecd05 
modules/org.openbravo.client.application/src/org/openbravo/client/application/FilterExpression.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/FilterExpression.java
       Thu Feb 10 14:13:14 2011 +0100
@@ -0,0 +1,30 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.client.application;
+
+/**
+ * Filter expression is the way to expose any Java to get complex filter 
expressions. Used in the
+ * filter/default expression like: 
OB.getFilterExpression('org.openbravo.somepackage.someClassName')
+ * 
+ * @author iperdomo
+ */
+public interface FilterExpression {
+
+  public String getExpression();
+}
diff -r ce6986db003f -r e32b87eecd05 
modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
     Thu Feb 10 13:34:07 2011 +0100
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/OBBindings.java
     Thu Feb 10 14:13:14 2011 +0100
@@ -26,6 +26,7 @@
 
 import org.apache.log4j.Logger;
 import org.openbravo.base.util.Check;
+import org.openbravo.base.util.OBClassLoader;
 import org.openbravo.dal.core.OBContext;
 
 /**
@@ -188,4 +189,16 @@
     return null;
   }
 
+  public String getFilterExpression(String className) {
+    Check.isNotNull(className, "The class name must not be null");
+    FilterExpression expr;
+    try {
+      expr = (FilterExpression) 
OBClassLoader.getInstance().loadClass(className).newInstance();
+      return expr.getExpression();
+    } catch (Exception e) {
+      log.error("Error trying to get filter expression from class: " + 
className, e);
+    }
+    return "";
+  }
+
 }
diff -r ce6986db003f -r e32b87eecd05 
modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/ExpressionsTest.java
--- 
a/modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/ExpressionsTest.java
     Thu Feb 10 13:34:07 2011 +0100
+++ 
b/modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/ExpressionsTest.java
     Thu Feb 10 14:13:14 2011 +0100
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -73,6 +73,10 @@
         + "else if(OB.isSalesTransaction()==true){'e.customer = true';}"
         + "else{'e.vendor = true';}");
 
+    expr
+        .put("Complex expression from Java",
+            
"OB.getFilterExpression('org.openbravo.userinterface.selectors.test.SampleFilterExpression');");
+
   }
 
   public void testUserName() {
@@ -146,4 +150,14 @@
     }
     assertEquals("", result);
   }
+
+  public void testGetFilterExpression() {
+    final String s = expr.get("Complex expression from Java");
+    try {
+      result = engine.eval(s);
+    } catch (Exception e) {
+      log.error("Error evaluating expression: " + s, e);
+    }
+    assertEquals("This is a complex expression", result);
+  }
 }
diff -r ce6986db003f -r e32b87eecd05 
modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/SampleFilterExpression.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/modules/org.openbravo.userinterface.selector/src-test/org/openbravo/userinterface/selectors/test/SampleFilterExpression.java
      Thu Feb 10 14:13:14 2011 +0100
@@ -0,0 +1,35 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2011 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.userinterface.selectors.test;
+
+import org.openbravo.client.application.FilterExpression;
+
+/**
+ * Simple sample expression for testing
+ * 
+ * @author iperdomo
+ */
+public class SampleFilterExpression implements FilterExpression {
+
+  @Override
+  public String getExpression() {
+    return "This is a complex expression";
+  }
+
+}

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to