/* 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);
}
}
}
|