ResourceFilterBuilderDODS.java :  » Workflow-Engines » shark » org » enhydra » shark » Java Open Source

Java Open Source » Workflow Engines » shark 
shark » org » enhydra » shark » ResourceFilterBuilderDODS.java
/* ResourceIteratorExpressionBuilderDODS.java */

package org.enhydra.shark;

import java.util.Properties;

import org.enhydra.shark.Shark;
import org.enhydra.shark.api.client.wfmc.wapi.WMFilter;
import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle;
import org.enhydra.shark.api.client.wfservice.NotConnected;
import org.enhydra.shark.api.common.ResourceFilterBuilder;
import org.enhydra.shark.api.common.SharkConstants;
import org.enhydra.shark.utilities.MiscUtilities;

/**
 * ResourceIteratorExpressionBuilderDODS
 * 
 * @author V.Puskas
 * @version 0.21
 */
public class ResourceFilterBuilderDODS extends BasicFilterBuilder implements
                                                                 ResourceFilterBuilder {

   protected static final String sqlUsername = " Username ";

   private static ResourceFilterBuilder anInstance;

   private ResourceFilterBuilderDODS(Properties p) {
      super(p);
   }

   public static ResourceFilterBuilder getInstance() {
      if (null == anInstance) {
         synchronized (ResourceFilterBuilderDODS.class) {
            if (null == anInstance) {
               Properties props=new Properties();
               try {
                  props=MiscUtilities.convertNameValueArrayToProperties(Shark.getInstance().getProperties());
               } catch (Exception ex) {
               }

               anInstance = new ResourceFilterBuilderDODS(props);
            }
         }
      }
      return anInstance;
   }

   public WMFilter addUsernameEquals(WMSessionHandle shandle, String un) throws Exception {
      long tStamp = SharkEngineManager.getInstance()
         .getCallbackUtilities()
         .methodStart(shandle, "ResourceFilterBuilderDODS.addUsernameEquals");
      try {
         if (!SharkUtilities.checkSession(shandle)) {
            throw new NotConnected("The session handle is not valid!");
         }
         checkSecurity(shandle, "addUsernameEquals", null);

         return addEquals(SQL_TYPE_RESOURCE,
                          SharkConstants.RES_USERNAME,
                          sqlUsername,
                          un);
      } finally {
         SharkEngineManager.getInstance()
            .getCallbackUtilities()
            .methodEnd(shandle,
                       tStamp,
                       "ResourceFilterBuilderDODS.addUsernameEquals",
                       this);
      }
   }

   public WMFilter addAssignemtCountEquals(WMSessionHandle shandle, long cnt)
      throws Exception {
      long tStamp = SharkEngineManager.getInstance()
         .getCallbackUtilities()
         .methodStart(shandle, "ResourceFilterBuilderDODS.addAssignemtCountEquals");
      try {
         if (!SharkUtilities.checkSession(shandle)) {
            throw new NotConnected("The session handle is not valid!");
         }
         checkSecurity(shandle, "addAssignemtCountEquals", null);

         String javaName = SharkConstants.RES_NO_OF_ASSIGNMENTS;
         WMFilter filter = new WMFilter(SQL_TYPE_RESOURCE);
         filter.setBshExpression(javaName + " == " + cnt);
         filter.setSQLWhereExpression("1 = 1");
         addNewPropertyUsed(filter, javaName, String.valueOf(cnt));
         filter.setSqlWhereComplete(false);

         return filter;
      } finally {
         SharkEngineManager.getInstance()
            .getCallbackUtilities()
            .methodEnd(shandle,
                       tStamp,
                       "ResourceFilterBuilderDODS.addAssignemtCountEquals",
                       this);
      }
   }

   public WMFilter addAssignemtCountLessThan(WMSessionHandle shandle, long cnt)
      throws Exception {
      long tStamp = SharkEngineManager.getInstance()
         .getCallbackUtilities()
         .methodStart(shandle, "ResourceFilterBuilderDODS.addAssignemtCountLessThan");
      try {
         if (!SharkUtilities.checkSession(shandle)) {
            throw new NotConnected("The session handle is not valid!");
         }
         checkSecurity(shandle, "addAssignemtCountLessThan", null);

         String javaName = SharkConstants.RES_NO_OF_ASSIGNMENTS;
         WMFilter filter = new WMFilter(SQL_TYPE_RESOURCE);
         filter.setBshExpression(javaName + " < " + cnt);
         filter.setSQLWhereExpression("1 = 1");
         addNewPropertyUsed(filter, javaName, String.valueOf(cnt));
         filter.setSqlWhereComplete(false);

         return filter;
      } finally {
         SharkEngineManager.getInstance()
            .getCallbackUtilities()
            .methodEnd(shandle,
                       tStamp,
                       "ResourceFilterBuilderDODS.addAssignemtCountLessThan",
                       this);
      }
   }

   public WMFilter addAssignemtCountGreaterThan(WMSessionHandle shandle, long cnt)
      throws Exception {
      long tStamp = SharkEngineManager.getInstance()
         .getCallbackUtilities()
         .methodStart(shandle, "ResourceFilterBuilderDODS.addAssignemtCountGreaterThan");
      try {
         if (!SharkUtilities.checkSession(shandle)) {
            throw new NotConnected("The session handle is not valid!");
         }
         checkSecurity(shandle, "addAssignemtCountGreaterThan", null);

         String javaName = SharkConstants.RES_NO_OF_ASSIGNMENTS;
         WMFilter filter = new WMFilter(SQL_TYPE_RESOURCE);
         filter.setBshExpression(javaName + " > " + cnt);
         filter.setSQLWhereExpression("1 = 1");
         addNewPropertyUsed(filter, javaName, String.valueOf(cnt));
         filter.setSqlWhereComplete(false);

         return filter;
      } finally {
         SharkEngineManager.getInstance()
            .getCallbackUtilities()
            .methodEnd(shandle,
                       tStamp,
                       "ResourceFilterBuilderDODS.addAssignemtCountGreaterThan",
                       this);
      }
   }

   public WMFilter setOrderByUsername(WMSessionHandle shandle,
                                      WMFilter filter,
                                      boolean ascending) throws Exception {
      long tStamp = SharkEngineManager.getInstance()
         .getCallbackUtilities()
         .methodStart(shandle, "ResourceFilterBuilderDODS.setOrderByUsername");
      try {
         if (!SharkUtilities.checkSession(shandle)) {
            throw new NotConnected("The session handle is not valid!");
         }
         checkSecurity(shandle, "setOrderByUsername", null);

         return super.setOrderBy(filter, sqlUsername, ascending);
      } finally {
         SharkEngineManager.getInstance()
            .getCallbackUtilities()
            .methodEnd(shandle,
                       tStamp,
                       "ResourceFilterBuilderDODS.setOrderByUsername",
                       this);
      }
   }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.