[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