/************************************************************************** * DomainPath.java * * $Revision: 1.7 $ * $Date: 2005/04/26 06:48:12 $ * * Copyright (C) 2001 CERN - European Organization for Nuclear Research * All rights reserved. **************************************************************************/ package com.c2kernel.lookup; import java.util.Enumeration; import java.util.Vector; import com.c2kernel.common.ObjectCannotBeUpdated; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.process.Gateway; import com.c2kernel.utils.Logger; import com.novell.ldap.LDAPAttribute; import com.novell.ldap.LDAPAttributeSet; /** * @version $Revision: 1.7 $ $Date: 2005/04/26 06:48:12 $ * @author $Author: abranson $ **/ public class RolePath extends DomainPath { /** * */ private boolean hasJobList = false; public RolePath(String roleName) { super(new DomainPath("agent"), roleName); } public RolePath(String roleName, boolean jobList) { this(roleName); hasJobList = jobList; } /** * @return Returns the hasJobList. */ public boolean hasJobList() { return hasJobList; } /** * @param hasJobList The hasJobList to set. */ public void setHasJobList(boolean hasJobList) { this.hasJobList = hasJobList; } public void checkType() { mType = CONTEXT; } public Enumeration getChildren() { AgentPath[] agents = getAgentsWithRole(); Vector children = new Vector(agents.length); for (int i = 0; i < agents.length; i++) children.add(i, agents[i]); return children.elements(); } public AgentPath[] getAgentsWithRole() { try { return Gateway.getLDAPLookup().getRoleManager().getAgents(this); } catch (ObjectNotFoundException ex) { Logger.error("Cannot retrieve agent list. Role "+getName()+" does not exist in LDAP"); return new AgentPath[0]; } } public void addAgent(AgentPath agent) throws ObjectCannotBeUpdated, ObjectNotFoundException { Gateway.getLDAPLookup().getRoleManager().addRole(agent, this); } public void removeAgent(AgentPath agent) throws ObjectCannotBeUpdated, ObjectNotFoundException { Gateway.getLDAPLookup().getRoleManager().removeRole(agent, this); } public String dump() { StringBuffer comp = new StringBuffer("Components: { "); for (int i=0; i