package com.c2kernel.lookup; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import com.c2kernel.common.ObjectAlreadyExistsException; import com.c2kernel.common.ObjectCannotBeUpdated; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.process.auth.Authenticator; import com.c2kernel.property.PropertyDescriptionList; public interface Lookup { public void initializeDirectory() throws ObjectNotFoundException; public void open(Authenticator user); public void close(); // Path resolution public Class getItemClass(Path path) throws ObjectNotFoundException; public ItemPath resolvePath(DomainPath domainPath) throws InvalidItemPathException, ObjectNotFoundException; public org.omg.CORBA.Object resolve(Path path) throws ObjectNotFoundException; // Path management public void add(Path newPath) throws ObjectCannotBeUpdated, ObjectAlreadyExistsException; public void delete(Path path) throws ObjectCannotBeUpdated; // Path finding and searching public boolean exists(Path path); public Iterator getChildren(Path path); public Iterator search(Path path, String name); public Iterator search(Path start, String propname, String propvalue); public Iterator search(Path start, PropertyDescriptionList props); public Iterator searchEntities(Path path); public Iterator searchAliases(DomainPath start); public Iterator searchAliases(ItemPath itemPath); // Role and agent management public AgentPath getAgentPath(String agentName) throws ObjectNotFoundException; public RolePath getRolePath(String roleName) throws ObjectNotFoundException; public RolePath createRole(String role, boolean b) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated; public void addRole(AgentPath agent, RolePath rolePath) throws ObjectCannotBeUpdated, ObjectNotFoundException; public AgentPath[] getAgents(RolePath rolePath) throws ObjectNotFoundException; public RolePath[] getRoles(AgentPath agentPath); public boolean hasRole(AgentPath agentPath, RolePath role); public void removeRole(AgentPath agent, RolePath role) throws ObjectCannotBeUpdated, ObjectNotFoundException; public String getAgentName(AgentPath agentPath) throws ObjectNotFoundException; public void setAgentPassword(AgentPath agent, String newPassword) throws ObjectNotFoundException, ObjectCannotBeUpdated, NoSuchAlgorithmException; public void setHasJobList(RolePath role, boolean hasJobList) throws ObjectNotFoundException, ObjectCannotBeUpdated; }