You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2008/03/04 00:37:28 UTC

svn commit: r633325 [2/2] - in /ofbiz/trunk/framework: base/src/base/org/ofbiz/base/util/ entity/src/org/ofbiz/entity/finder/ entity/src/org/ofbiz/entity/model/ minilang/src/org/ofbiz/minilang/ minilang/src/org/ofbiz/minilang/method/callops/ minilang/s...

Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceArtifactInfo.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceArtifactInfo.java?rev=633325&r1=633324&r2=633325&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceArtifactInfo.java (original)
+++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceArtifactInfo.java Mon Mar  3 15:37:14 2008
@@ -31,22 +31,74 @@
 import org.ofbiz.base.util.GeneralException;
 import org.ofbiz.base.util.UtilFormatOut;
 import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.minilang.SimpleMethod;
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.ModelParam;
 import org.ofbiz.service.ModelService;
-import org.ofbiz.webtools.artifactinfo.ArtifactInfoFactory.ArtifactInfoContext;
 
 /**
  *
  */
 public class ServiceArtifactInfo {
-    protected ArtifactInfoContext aic;
+    protected ArtifactInfoFactory aif;
     protected ModelService modelService;
     protected String displayPrefix = null;
     
-    public ServiceArtifactInfo(String serviceName, ArtifactInfoContext aic) throws GenericServiceException {
-        this.aic = aic;
-        this.modelService = this.aic.getModelService(serviceName);
+    Set<EntityArtifactInfo> entitiesUsedByThisService = FastSet.newInstance();
+    Set<ServiceArtifactInfo> servicesCalledByThisService = FastSet.newInstance();
+    Set<ServiceEcaArtifactInfo> serviceEcasTriggeredByThisService = FastSet.newInstance();
+    
+    public ServiceArtifactInfo(String serviceName, ArtifactInfoFactory aif) throws GeneralException {
+        this.aif = aif;
+        this.modelService = this.aif.getModelService(serviceName);
+        
+        this.populateUsedEntities();
+        this.populateCalledServices();
+        this.populateTriggeredServiceEcas();
+    }
+    
+    protected void populateUsedEntities() throws GeneralException {
+        // populate entitiesUsedByThisService and for each the reverse-associate cache in the aif
+        if ("simple".equals(this.modelService.engineName)) {
+            // we can do something with this!
+            Map<String, SimpleMethod> simpleMethods = SimpleMethod.getSimpleMethods(this.modelService.location, null);
+            SimpleMethod simpleMethodToCall = (SimpleMethod) simpleMethods.get(this.modelService.invoke);
+            
+            Set<String> allEntityNameSet = simpleMethodToCall.getAllEntityNamesUsed();
+            for (String entityName: allEntityNameSet) {
+                // the forward reference
+                this.entitiesUsedByThisService.add(aif.getEntityArtifactInfo(entityName));
+                // the reverse reference
+                UtilMisc.addToSetInMap(this, aif.allServiceInfosReferringToEntityName, entityName);
+                
+            }
+        } else if ("java".equals(this.modelService.engineName)) {
+            // TODO: can't do anything about this :( ...YET! :)
+        }
+    }
+    
+    protected void populateCalledServices() throws GeneralException {
+        // populate servicesCalledByThisService and for each the reverse-associate cache in the aif
+        if ("simple".equals(this.modelService.engineName)) {
+            // we can do something with this!
+            Map<String, SimpleMethod> simpleMethods = SimpleMethod.getSimpleMethods(this.modelService.location, null);
+            SimpleMethod simpleMethodToCall = (SimpleMethod) simpleMethods.get(this.modelService.invoke);
+            
+            Set<String> allServiceNameSet = simpleMethodToCall.getAllServiceNamesCalled();
+            for (String serviceName: allServiceNameSet) {
+                // the forward reference
+                this.servicesCalledByThisService.add(aif.getServiceArtifactInfo(serviceName));
+                // the reverse reference
+                UtilMisc.addToSetInMap(this, aif.allServiceInfosReferringToServiceName, serviceName);
+            }
+        } else if ("java".equals(this.modelService.engineName)) {
+            // TODO: can't do anything about this :( ...YET! :)
+        }
+    }
+    
+    protected void populateTriggeredServiceEcas() {
+        // TODO populate serviceEcasTriggeredByThisService and for each the reverse-associate cache in the aif
+        
     }
     
     public ModelService getModelService() {
@@ -61,46 +113,36 @@
         return (this.displayPrefix != null ? this.displayPrefix : "") + this.modelService.name;
     }
     
-    public List<EntityArtifactInfo> getEntitiesUsedByService() {
-        List<EntityArtifactInfo> entityList = FastList.newInstance();
-        // TODO: implement this
-        return entityList;
+    public Set<EntityArtifactInfo> getEntitiesUsedByService() {
+        return this.entitiesUsedByThisService;
     }
     
-    public List<ServiceArtifactInfo> getServicesCallingService() {
-        List<ServiceArtifactInfo> serviceList = FastList.newInstance();
-        // TODO: *implement this
-        return serviceList;
+    public Set<ServiceArtifactInfo> getServicesCallingService() {
+        return aif.allServiceInfosReferringToServiceName.get(this.modelService.name);
     }
     
-    public List<ServiceArtifactInfo> getServicesCalledByService() {
-        List<ServiceArtifactInfo> serviceList = FastList.newInstance();
-        // TODO: *implement this
-        return serviceList;
+    public Set<ServiceArtifactInfo> getServicesCalledByService() {
+        return this.servicesCalledByThisService;
     }
     
-    public List<ServiceArtifactInfo> getServicesCalledByServiceEcas() {
-        List<ServiceArtifactInfo> serviceList = FastList.newInstance();
+    public Set<ServiceArtifactInfo> getServicesCalledByServiceEcas() {
+        Set<ServiceArtifactInfo> serviceList = FastSet.newInstance();
         // TODO: implement this
         return serviceList;
     }
     
-    public List<ServiceEcaArtifactInfo> getServiceEcaRulesTriggeredByService() {
-        List<ServiceEcaArtifactInfo> secaList = FastList.newInstance();
-        // TODO: *implement this
-        return secaList;
+    public Set<ServiceEcaArtifactInfo> getServiceEcaRulesTriggeredByService() {
+        return this.serviceEcasTriggeredByThisService;
     }
     
-    public List<ServiceArtifactInfo> getServicesCallingServiceByEcas() {
-        List<ServiceArtifactInfo> serviceList = FastList.newInstance();
+    public Set<ServiceArtifactInfo> getServicesCallingServiceByEcas() {
+        Set<ServiceArtifactInfo> serviceList = FastSet.newInstance();
         // TODO: implement this
         return serviceList;
     }
     
-    public List<ServiceEcaArtifactInfo> getServiceEcaRulesCallingService() {
-        List<ServiceEcaArtifactInfo> secaList = FastList.newInstance();
-        // TODO: *implement this
-        return secaList;
+    public Set<ServiceEcaArtifactInfo> getServiceEcaRulesCallingService() {
+        return aif.allServiceEcaInfosReferringToServiceName.get(this.modelService.name);
     }
     
     public List<FormWidgetArtifactInfo> getFormsCallingService() {
@@ -136,7 +178,7 @@
         List<ServiceEcaArtifactInfo> allServiceEcaList = FastList.newInstance();
         
         // all services that call this service
-        List<ServiceArtifactInfo> callingServiceList = this.getServicesCallingService();
+        Set<ServiceArtifactInfo> callingServiceList = this.getServicesCallingService();
         
         // set the prefix and add to the all list
         for (ServiceArtifactInfo callingService: callingServiceList) {
@@ -146,7 +188,7 @@
         }
         
         // all services this service calls
-        List<ServiceArtifactInfo> calledServiceList = this.getServicesCalledByService();
+        Set<ServiceArtifactInfo> calledServiceList = this.getServicesCalledByService();
         
         for (ServiceArtifactInfo calledService: calledServiceList) {
             calledService.setDisplayPrefix("Called:");
@@ -155,18 +197,18 @@
         }
         
         // all SECAs and triggering services that call this service as an action
-        List<ServiceEcaArtifactInfo> callingServiceEcaList = this.getServiceEcaRulesCallingService();
+        Set<ServiceEcaArtifactInfo> callingServiceEcaSet = this.getServiceEcaRulesCallingService();
         
-        for (ServiceEcaArtifactInfo callingServiceEca: callingServiceEcaList) {
+        for (ServiceEcaArtifactInfo callingServiceEca: callingServiceEcaSet) {
             callingServiceEca.setDisplayPrefix("Triggering:");
             allDiagramEntitiesWithPrefixes.add(callingServiceEca.getDisplayPrefixedName());
             allServiceEcaList.add(callingServiceEca);
         }
 
         // all SECAs and corresponding services triggered by this service
-        List<ServiceEcaArtifactInfo> calledServiceEcaList = this.getServiceEcaRulesTriggeredByService();
+        Set<ServiceEcaArtifactInfo> calledServiceEcaSet = this.getServiceEcaRulesTriggeredByService();
         
-        for (ServiceEcaArtifactInfo calledServiceEca: calledServiceEcaList) {
+        for (ServiceEcaArtifactInfo calledServiceEca: calledServiceEcaSet) {
             calledServiceEca.setDisplayPrefix("Called:");
             allDiagramEntitiesWithPrefixes.add(calledServiceEca.getDisplayPrefixedName());
             allServiceEcaList.add(calledServiceEca);
@@ -200,7 +242,7 @@
         }
         
         // write SECA description files
-        for (ServiceEcaArtifactInfo callingServiceEca: callingServiceEcaList) {
+        for (ServiceEcaArtifactInfo callingServiceEca: callingServiceEcaSet) {
             // add List<ServiceArtifactInfo> for services that trigger this eca rule
             List<ServiceArtifactInfo> ecaCallingServiceList = callingServiceEca.getServicesTriggeringServiceEca();
             for (ServiceArtifactInfo ecaCallingService: ecaCallingServiceList) {
@@ -211,7 +253,7 @@
             Map<String, Object> serviceEcaEoModelMap = callingServiceEca.createEoModelMap(ecaCallingServiceList, useMoreDetailedNames);
             UtilFormatOut.writePlistFile(serviceEcaEoModelMap, eomodeldFullPath, callingServiceEca.getDisplayPrefixedName() + ".plist");
         }
-        for (ServiceEcaArtifactInfo calledServiceEca: calledServiceEcaList) {
+        for (ServiceEcaArtifactInfo calledServiceEca: calledServiceEcaSet) {
             // add List<ServiceArtifactInfo> for services this eca rule calls in action
             List<ServiceArtifactInfo> ecaCalledServiceList = calledServiceEca.getServicesCalledByServiceEcaActions();
             for (ServiceArtifactInfo ecaCalledService: ecaCalledServiceList) {
@@ -295,5 +337,13 @@
         }
         
         return topLevelMap;
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof ServiceArtifactInfo) {
+            return this.modelService.name.equals(((ServiceArtifactInfo) obj).modelService.name);
+        } else {
+            return false;
+        }
     }
 }

Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceEcaArtifactInfo.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceEcaArtifactInfo.java?rev=633325&r1=633324&r2=633325&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceEcaArtifactInfo.java (original)
+++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/artifactinfo/ServiceEcaArtifactInfo.java Mon Mar  3 15:37:14 2008
@@ -28,18 +28,18 @@
 import org.ofbiz.service.eca.ServiceEcaAction;
 import org.ofbiz.service.eca.ServiceEcaCondition;
 import org.ofbiz.service.eca.ServiceEcaRule;
-import org.ofbiz.webtools.artifactinfo.ArtifactInfoFactory.ArtifactInfoContext;
+import org.ofbiz.webtools.artifactinfo.ArtifactInfoFactory;
 
 /**
  *
  */
 public class ServiceEcaArtifactInfo {
-    protected ArtifactInfoContext aic;
+    protected ArtifactInfoFactory aif;
     protected ServiceEcaRule serviceEcaRule;
     protected String displayPrefix = null;
     
-    public ServiceEcaArtifactInfo(ServiceEcaRule serviceEcaRule, ArtifactInfoContext aic) throws GenericServiceException {
-        this.aic = aic;
+    public ServiceEcaArtifactInfo(ServiceEcaRule serviceEcaRule, ArtifactInfoFactory aif) throws GenericServiceException {
+        this.aif = aif;
         this.serviceEcaRule = serviceEcaRule;
     }
     
@@ -131,5 +131,14 @@
         }
         
         return topLevelMap;
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof ServiceEcaArtifactInfo) {
+            ServiceEcaArtifactInfo that = (ServiceEcaArtifactInfo) obj;
+            return this.serviceEcaRule.equals(that.serviceEcaRule);
+        } else {
+            return false;
+        }
     }
 }

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=633325&r1=633324&r2=633325&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Mon Mar  3 15:37:14 2008
@@ -2070,6 +2070,10 @@
         this.formLocation = formLocation;
     }
 
+    public String getFormLocation() {
+        return this.formLocation;
+    }
+    
     /**
      * @param string
      */