summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.java
deleted file mode 100644
index a2dfeae..0000000
--- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/agent/CreateAgentFromDescription.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.lifecycle.instance.predefined.agent;
-
-import java.util.Arrays;
-
-import com.c2kernel.common.CannotManageException;
-import com.c2kernel.common.InvalidDataException;
-import com.c2kernel.common.ObjectAlreadyExistsException;
-import com.c2kernel.common.ObjectCannotBeUpdated;
-import com.c2kernel.common.ObjectNotFoundException;
-import com.c2kernel.common.PersistencyException;
-import com.c2kernel.entity.CorbaServer;
-import com.c2kernel.entity.agent.ActiveEntity;
-import com.c2kernel.lifecycle.instance.predefined.item.CreateItemFromDescription;
-import com.c2kernel.lookup.AgentPath;
-import com.c2kernel.lookup.ItemPath;
-import com.c2kernel.lookup.RolePath;
-import com.c2kernel.process.Gateway;
-import com.c2kernel.property.PropertyArrayList;
-import com.c2kernel.utils.Logger;
-
-/**************************************************************************
- *
- * @author $Author: abranson $ $Date: 2005/10/13 08:13:58 $
- * @version $Revision: 1.47 $
- **************************************************************************/
-public class CreateAgentFromDescription extends CreateItemFromDescription
-{
- public CreateAgentFromDescription()
- {
- super();
- }
-
- /**
- * Params:
- * <ol><li>New Agent name</li>
- * <li>Description version to use</li>
- * <li>Comma-delimited Role names to assign to the agent. Must already exist.</li>
- * <li>Initial properties to set in the new Agent</li>
- * </ol>
- * @throws ObjectNotFoundException
- * @throws InvalidDataException The input parameters were incorrect
- * @throws ObjectAlreadyExistsException The Agent already exists
- * @throws CannotManageException The Agent could not be created
- * @throws ObjectCannotBeUpdated The addition of the new entries into the LookupManager failed
- * @see com.c2kernel.lifecycle.instance.predefined.item.CreateItemFromDescription#runActivityLogic(com.c2kernel.lookup.AgentPath, int, int, java.lang.String)
- */
- @Override
- protected String runActivityLogic(AgentPath agent, ItemPath item,
- int transitionID, String requestData) throws ObjectNotFoundException, InvalidDataException, ObjectAlreadyExistsException, CannotManageException, ObjectCannotBeUpdated {
-
- String[] params = getDataList(requestData);
- if (Logger.doLog(3)) Logger.msg(3, "CreateAgentFromDescription: called by "+agent+" on "+item+" with parameters "+Arrays.toString(params));
- if (params.length < 3 || params.length > 4)
- throw new InvalidDataException("CreateAgentFromDescription: Invalid parameters "+Arrays.toString(params));
-
- String newName = params[0];
- String descVer = params[1];
- String roles = params[2];
- PropertyArrayList initProps =
- params.length > 3 ? getInitProperties(params[3]):new PropertyArrayList();
-
- Logger.msg(1, "CreateAgentFromDescription::request() - Starting.");
-
- // check if given roles exist
- String[] roleArr = roles.split(",");
- for(int i=0; i<roleArr.length; i++) {
- RolePath thisRole = Gateway.getLookup().getRolePath(roleArr[i]);
- }
-
- // check if the path is already taken
- try {
- Gateway.getLookup().getAgentPath(newName);
- throw new ObjectAlreadyExistsException("The agent name " +newName+ " exists already.");
- } catch (ObjectNotFoundException ex) { }
-
- // generate new entity key
- Logger.msg(6, "CreateItemFromDescription - Requesting new agent path");
- AgentPath newAgentPath = new AgentPath(new ItemPath(), newName);
-
- // resolve the item factory
- Logger.msg(6, "CreateItemFromDescription - Resolving item factory");
-
- // create the Item object
- Logger.msg(3, "CreateItemFromDescription - Creating Item");
- CorbaServer factory = Gateway.getCorbaServer();
- if (factory == null) throw new CannotManageException("This process cannot create new Items");
- ActiveEntity newAgent = factory.createAgent(newAgentPath);
- Gateway.getLookupManager().add(newAgentPath);
-
- // initialise it with its properties and workflow
-
- Logger.msg(3, "CreateItemFromDescription - Initializing Item");
-
- try {
- newAgent.initialise(
- agent.getSystemKey(),
- Gateway.getMarshaller().marshall(getNewProperties(item, descVer, initProps, newName, agent)),
- Gateway.getMarshaller().marshall(getNewWorkflow(item, descVer)),
- Gateway.getMarshaller().marshall(getNewCollections(item, descVer))
- );
- } catch (PersistencyException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (Exception e) {
- throw new InvalidDataException("CreateAgentFromDescription: Problem initializing new Agent. See log: "+e.getMessage());
- }
-
- // add roles if given
-
- for(int i=1; i<roleArr.length; i++) {
- newAgent.addRole(roleArr[i]);
- }
-
- return requestData;
- }
-}