summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/imports
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/imports')
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportAgent.java4
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportRole.java28
2 files changed, 28 insertions, 4 deletions
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
index ac9911e..2bbd307 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
@@ -50,9 +50,9 @@ public class ImportAgent extends ModuleImport implements java.io.Serializable {
try {
thisRole = Gateway.getLookup().getRolePath(role);
} catch (ObjectNotFoundException ex) {
- throw new ObjectNotFoundException("Role "+role+" does not exist.");
+ throw new ObjectNotFoundException("Role "+role+" does not exist.", "");
}
- thisRole.addAgent(newAgent);
+ Gateway.getLookupManager().addRole(newAgent, thisRole);
}
}
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportRole.java b/src/main/java/com/c2kernel/entity/imports/ImportRole.java
index dc8f351..975c18b 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportRole.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportRole.java
@@ -1,9 +1,14 @@
package com.c2kernel.entity.imports;
+import java.util.Iterator;
+
import com.c2kernel.common.CannotManageException;
import com.c2kernel.common.ObjectAlreadyExistsException;
import com.c2kernel.common.ObjectCannotBeUpdated;
+import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.lookup.AgentPath;
+import com.c2kernel.lookup.Path;
+import com.c2kernel.lookup.RolePath;
import com.c2kernel.process.Gateway;
import com.c2kernel.process.module.ModuleImport;
@@ -15,8 +20,27 @@ public class ImportRole extends ModuleImport {
}
@Override
- public void create(AgentPath agentPath, boolean reset) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated, CannotManageException {
- Gateway.getLookupManager().createRole(name, jobList);
+ public void create(AgentPath agentPath, boolean reset) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated, CannotManageException, ObjectNotFoundException {
+ RolePath parent = new RolePath();
+ if (name.indexOf('/') > -1) {
+ String[] roleComp = name.split("/");
+ for (int i=0; i<roleComp.length-1; i++) {
+ Iterator<Path> childIter = parent.getChildren();
+ boolean found = false;
+ while (childIter.hasNext()) {
+ RolePath childRole = (RolePath)childIter.next();
+ if (childRole.getName().equals(roleComp[i])) {
+ parent = childRole;
+ found = true;
+ break;
+ }
+ }
+ if (!found) throw new ObjectNotFoundException("Parent role "+roleComp[i]+" was not found", "");
+ }
+ name = roleComp[roleComp.length-1];
+ }
+ RolePath newRole = new RolePath(parent, name, jobList);
+ if (!newRole.exists()) Gateway.getLookupManager().createRole(newRole);
}
public boolean hasJobList() {