summaryrefslogtreecommitdiff
path: root/source/com/c2kernel/entity/agent/JobList.java
diff options
context:
space:
mode:
Diffstat (limited to 'source/com/c2kernel/entity/agent/JobList.java')
-rwxr-xr-xsource/com/c2kernel/entity/agent/JobList.java125
1 files changed, 125 insertions, 0 deletions
diff --git a/source/com/c2kernel/entity/agent/JobList.java b/source/com/c2kernel/entity/agent/JobList.java
new file mode 100755
index 0000000..d0d05d5
--- /dev/null
+++ b/source/com/c2kernel/entity/agent/JobList.java
@@ -0,0 +1,125 @@
+package com.c2kernel.entity.agent;
+
+import java.util.Iterator;
+import java.util.Vector;
+
+import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.lookup.InvalidEntityPathException;
+import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.persistency.RemoteMap;
+import com.c2kernel.utils.Logger;
+
+
+/**************************************************************************
+*
+* @author $Author: abranson $ $Date: 2006/03/03 13:52:21 $
+* @version $Revision: 1.15 $
+***************************************************************************/
+public class JobList extends RemoteMap
+{
+
+ /**************************************************************************
+ * Empty constructor for Castor
+ **************************************************************************/
+ public JobList(int sysKey, Object locker)
+ throws ObjectNotFoundException, InvalidEntityPathException
+ {
+ super(sysKey, ClusterStorage.JOB, locker);
+ }
+
+
+ /**************************************************************************
+ *
+ **************************************************************************/
+ public void addJob( Job job )
+ {
+ synchronized(this) {
+ int jobId = getLastId()+1;
+ job.setID(jobId);
+ put(String.valueOf(jobId), job);
+ }
+ }
+
+ /**
+ * Cannot be stored
+ */
+ public String getClusterType() {
+ return null;
+ }
+
+ public int containsJob( Job job )
+ {
+ Iterator actMembers = keySet().iterator();
+ Job j = null;
+
+ while( actMembers.hasNext() )
+ {
+ j = (Job)actMembers.next();
+
+ if( j.equals(job) )
+ return j.getID();
+ }
+
+ return -1;
+ }
+
+ public Job getJob(int id) {
+ return (Job)get(String.valueOf(id));
+ }
+
+
+ /**
+ * @param job
+ */
+ public void removeJobsWithSysKey( int sysKey )
+ {
+ Iterator currentMembers = values().iterator();
+ Job j = null;
+
+ while( currentMembers.hasNext() )
+ {
+ j = (Job)currentMembers.next();
+
+ if( j.getItemSysKey() == sysKey )
+ remove( String.valueOf(j.getID()) );
+ }
+
+ Logger.msg(5, "JobList::removeJobsWithSysKey() - " + sysKey + " DONE." );
+ }
+
+ public void removeJobsForStep( int sysKey, String stepPath )
+ {
+ Iterator currentMembers = values().iterator();
+ while( currentMembers.hasNext() )
+ {
+ Job j = (Job)currentMembers.next();
+ if( j.getItemSysKey() == sysKey && j.getStepPath().equals(stepPath))
+ remove( String.valueOf(j.getID()) );
+ }
+
+ Logger.msg(5, "JobList::removeJobsForStep() - " + sysKey + " DONE." );
+ }
+ /**
+ * @param itemKey
+ * @param string
+ * @return
+ */
+ public Vector getJobsOfSysKey(int sysKey)
+ {
+ Iterator currentMembers = values().iterator();
+ Job j = null;
+ Vector jobs = new Vector();
+
+ while( currentMembers.hasNext() )
+ {
+ j = (Job)currentMembers.next();
+
+ if( j.getItemSysKey() == sysKey )
+ jobs.add(j);
+ }
+
+ Logger.msg(5, "JobList::getJobsOfSysKey() - returning " + jobs.size() + " Jobs." );
+
+ return jobs;
+ }
+} \ No newline at end of file