[jboss-svn-commits] JBL Code SVN: r24956 - labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 27 13:17:02 EST 2009


Author: salaboy21
Date: 2009-01-27 13:17:02 -0500 (Tue, 27 Jan 2009)
New Revision: 24956

Modified:
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java
   labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java
Log:
change about how the strategies are handled

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java	2009-01-27 18:15:38 UTC (rev 24955)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategy.java	2009-01-27 18:17:02 UTC (rev 24956)
@@ -17,9 +17,9 @@
 
 package org.drools.persistence.processinstance;
 
+import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -31,23 +31,24 @@
  * @author salaboy
  */
 public class VariablePersistenceStrategy  {
+
     private Map<String, String> types = new HashMap<String, String>();
-    private List<VariableTypeFinder> finders = new ArrayList<VariableTypeFinder>();
     
+    
 
    
     @SuppressWarnings("unchecked")
-    public PersistedVariable persistVariable(String name, Object o){
-       PersistedVariable variable = null;
-       VariableConverter converter = null;
-       String converterFQN =  resolveVariableTypeConverter(o);
-       if(converterFQN != null && !converterFQN.equals("")){
-        Class converterClass = null;
+    public VariableInstanceInfo persistVariable(String name, Object o){
+       VariableInstanceInfo variable = null;
+       VariablePersister persister = null;
+       String persisterFQN =  getVariablePersistenceAnnotations(o);
+       if(persisterFQN != null && !persisterFQN.equals("")){
+        Class persisterClass = null;
             try {
-                converterClass = Class.forName(converterFQN);
+                persisterClass = Class.forName(persisterFQN);
                 Constructor constructor;
-                constructor = converterClass.getConstructor(null);
-                converter = (VariableConverter) constructor.newInstance(null);
+                constructor = persisterClass.getConstructor(null);
+                persister = (VariablePersister) constructor.newInstance(null);
 
             } catch (ClassNotFoundException ex) {
                 Logger.getLogger(VariablePersistenceStrategy.class.getName()).log(Level.SEVERE, null, ex);
@@ -66,23 +67,33 @@
             }
 
 
-        variable = converter.convertToPersistedVariable(name, o);
+        variable = persister.persistExternalVariable(name, o);
         
        }
       return variable;
     }
 
-    public Object read(){
-        return new Object();
+    public VariableInstanceInfo getVariable(String name, Long processInstanceId){
+        VariablePersister persister = null;
+        return persister.getExternalPersistedVariable(name, processInstanceId);
     }
+    public List<VariableInstanceInfo> getVariables(Long processInstanceId){
+         VariablePersister persister = null;
+         return persister.getExternalPersistedVariables(processInstanceId);
+    }
 
-    private String resolveVariableTypeConverter(Object o) {
 
-        for( VariableTypeFinder finder: getFinders()){
-            if(finder.accept(o)){
-               return (String) getTypes().get(finder.getType());
+    private String getVariablePersistenceAnnotations(Object o) {
+
+        Annotation[] annotations = o.getClass().getDeclaredAnnotations();
+        for(Annotation annotation : annotations){
+            String persisterFQN = getTypes().get(annotation.annotationType().getName());
+            if(persisterFQN != null && !persisterFQN.equals("")){
+                return persisterFQN;
             }
         }
+                   
+       
         return null;
     }
 
@@ -99,21 +110,6 @@
     public void setTypes(Map<String, String> types) {
         this.types = types;
     }
+  
 
-    /**
-     * @return the finders
-     */
-    public List<VariableTypeFinder> getFinders() {
-        return finders;
-    }
-
-    /**
-     * @param finders the finders to set
-     */
-    public void setFinders(List<VariableTypeFinder> finders) {
-        this.finders = finders;
-    }
-    
-   
-
 }

Modified: labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java
===================================================================
--- labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java	2009-01-27 18:15:38 UTC (rev 24955)
+++ labs/jbossrules/branches/salaboy_VariablePersistenceStrategy/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/VariablePersistenceStrategyFactory.java	2009-01-27 18:17:02 UTC (rev 24956)
@@ -17,11 +17,11 @@
 
 package org.drools.persistence.processinstance;
 
-import java.util.ArrayList;
+
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
+
 /**
  *
  * @author salaboy
@@ -32,12 +32,9 @@
     }
     public static VariablePersistenceStrategy getVariablePersistenceStrategyFactory(){
         VariablePersistenceStrategy vPRS = new VariablePersistenceStrategy();
-        List<VariableTypeFinder> finders= new ArrayList<VariableTypeFinder>();
-        finders.add(new EJB3VariableTypeFinder());
-        vPRS.setFinders(finders);
-
         Map<String, String> types = new HashMap<String, String>();
-        types.put("org.drools.persistence.processinstance.EJB3PersistedVariable", "org.drools.persistence.processinstance.EJB3VariableConverter");
+
+        types.put("javax.persistence.Entity", "org.drools.persistence.processinstance.JPAVariablePersister");
         vPRS.setTypes(types);
         return vPRS;
     }




More information about the jboss-svn-commits mailing list