summaryrefslogtreecommitdiff
path: root/source/com/c2kernel/entity/agent/JobList.java
blob: d0d05d52b4186ee682c9c7c3746ae64f00dc0d8e (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
117
118
119
120
121
122
123
124
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;
    }
}