From 0ed2c1124cf1b9e49a2ec1fa0126a8df09f9e758 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 7 Oct 2014 09:18:11 +0200 Subject: Repackage to org.cristalise --- .../c2kernel/entity/agent/AgentImplementation.java | 136 --------------------- 1 file changed, 136 deletions(-) delete mode 100644 src/main/java/com/c2kernel/entity/agent/AgentImplementation.java (limited to 'src/main/java/com/c2kernel/entity/agent/AgentImplementation.java') 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. - * - *

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(); - } -} -- cgit v1.2.3