blob: 3772c22708bb80be1b92fa837040ff1af1d5232b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
package com.c2kernel.entity.agent;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
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<Job>
{
/**************************************************************************
* Empty constructor for Castor
**************************************************************************/
public JobList(int sysKey, Object locker)
{
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
*/
@Override
public String getClusterType() {
return null;
}
public Job getJob(int id) {
return get(String.valueOf(id));
}
/**
* @param job
*/
public void removeJobsWithSysKey( int sysKey )
{
Iterator<Job> currentMembers = values().iterator();
Job j = null;
while( currentMembers.hasNext() )
{
j = 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 )
{
ArrayList<String> staleJobs = new ArrayList<String>();
Iterator<String> jobIter = keySet().iterator();
while( jobIter.hasNext() )
{
String jid = jobIter.next();
Job j = get(jid);
if( j.getItemSysKey() == sysKey && j.getStepPath().equals(stepPath))
staleJobs.add(jid);
}
Logger.msg(3, "JobList.removeJobsForStep() - removing "+staleJobs.size());
for (String jid : staleJobs) {
remove(jid);
}
Logger.msg(5, "JobList::removeJobsForStep() - " + sysKey + " DONE." );
}
/**
* @param itemKey
* @param string
* @return
*/
public Vector<Job> getJobsOfSysKey(int sysKey)
{
Iterator<Job> currentMembers = values().iterator();
Job j = null;
Vector<Job> jobs = new Vector<Job>();
while( currentMembers.hasNext() )
{
j = currentMembers.next();
if( j.getItemSysKey() == sysKey )
jobs.add(j);
}
Logger.msg(5, "JobList::getJobsOfSysKey() - returning " + jobs.size() + " Jobs." );
return jobs;
}
}
|