summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/agent/AgentImplementation.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/agent/AgentImplementation.java')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/AgentImplementation.java136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main/java/com/c2kernel/entity/agent/AgentImplementation.java b/src/main/java/com/c2kernel/entity/agent/AgentImplementation.java
deleted file mode 100644
index e59c731..0000000
--- a/src/main/java/com/c2kernel/entity/agent/AgentImplementation.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * This file is part of the CRISTAL-iSE kernel.
- * Copyright (c) 2001-2014 The CRISTAL Consortium. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or (at
- * your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
- *
- * http://www.fsf.org/licensing/licenses/lgpl.html
- */
-package com.c2kernel.entity.agent;
-
-import com.c2kernel.common.CannotManageException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.common.SystemKey;
-import com.c2kernel.entity.AgentOperations;
-import com.c2kernel.entity.ItemImplementation;
-import com.c2kernel.lifecycle.instance.predefined.PredefinedStepContainer;
-import com.c2kernel.lifecycle.instance.predefined.agent.AgentPredefinedStepContainer;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.utils.Logger;
-
-/**
- * Implementation of Agent, though called from the CORBA implementation ActiveEntity.
- *
- * <p>The Agent is an extension of the Item that can execute Jobs, and in doing so
- * change the state of Item workflows, submit data to them in the form of Outcomes
- * and run any scripts associated with those activities. In this server object,
- * none of this specific Agent work is performed - it all must be done using the
- * client API. The server implementation only manages the Agent's data: its roles
- * and persistent Jobs.
- */
-public class AgentImplementation extends ItemImplementation implements
- AgentOperations {
-
- private JobList currentJobs;
- private final AgentPath mAgentPath;
-
- public AgentImplementation(AgentPath path) {
- super(path);
- mAgentPath = path;
- }
-
-
- /**
- * Updates an Agent's list of Jobs relating to a particular activity. Only
- * Activities that are assigned to a Role that is flagged to push Jobs do this.
- *
- */
- @Override
- public synchronized void refreshJobList(SystemKey sysKey, String stepPath, String newJobs) {
- try {
- ItemPath itemPath = new ItemPath(sysKey);
- JobArrayList newJobList = (JobArrayList)Gateway.getMarshaller().unmarshall(newJobs);
-
- // get our joblist
- if (currentJobs == null)
- currentJobs = new JobList( itemPath, null);
-
- // remove old jobs for this item
- currentJobs.removeJobsForStep( itemPath, stepPath );
-
- // merge new jobs in
- for (Object name : newJobList.list) {
- Job newJob = (Job)name;
- Logger.msg(6, "Adding job for "+newJob.getItemPath()+"/"+newJob.getStepPath()+":"+newJob.getTransition().getId());
- currentJobs.addJob(newJob);
- }
-
- } catch (Throwable ex) {
- Logger.error("Could not refresh job list.");
- Logger.error(ex);
- }
-
- }
-
- /** Adds the given Role to this Agent. Called from the SetAgentRoles
- * predefined step.
- *
- * @param roleName - the new Role to add
- * @throws CannotManageException When the process has no lookup manager
- * @throws ObjectNotFoundException
- *
- */
- @Override
- public void addRole(String roleName) throws CannotManageException, ObjectNotFoundException {
- RolePath newRole = Gateway.getLookup().getRolePath(roleName);
- try {
- Gateway.getLookupManager().addRole(mAgentPath, newRole);
- } catch (ObjectCannotBeUpdated ex) {
- throw new CannotManageException("Could not update role");
- }
- }
-
- /**
- * Removes the given Role from this Agent. Called by the SetAgentRoles
- * predefined step.
- *
- * @param roleName
- */
- @Override
- public void removeRole(String roleName) throws CannotManageException, ObjectNotFoundException {
- RolePath rolePath = Gateway.getLookup().getRolePath(roleName);
- try {
- Gateway.getLookupManager().removeRole(mAgentPath, rolePath);
- } catch (ObjectCannotBeUpdated ex) {
- throw new CannotManageException("Could not update role");
- }
- }
-
- /**
- * Agents have their own predefined step containers. They contain the standard
- * predefined steps, plus special Agent ones related to Agent management and
- * instantiation.
- *
- * @see com.c2kernel.lifecycle.instance.predefined.agent.AgentPredefinedStepContainer
- */
- @Override
- protected PredefinedStepContainer getNewPredefStepContainer() {
- return new AgentPredefinedStepContainer();
- }
-}