/* * $Id: UserHandlerImpl.java,v 1.6 2011/04/13 15:45:42 acaproni Exp $ * * $Date: 2011/04/13 15:45:42 $ * $Revision: 1.6 $ * $Author: acaproni $ * * Copyright CERN, All Rights Reserved. */ package cern.laser.console.impl; import java.util.ArrayList; import java.util.Collection; import java.util.Enumeration; import java.util.Iterator; import javax.naming.Context; import javax.rmi.PortableRemoteObject; import org.omg.CORBA.ORB; import alma.acs.container.ContainerServicesBase; import alma.acs.logging.AcsLogger; import cern.laser.client.LaserConnectionException; import cern.laser.console.LaserConsoleException; import cern.laser.console.LaserUserDuplicationException; import cern.laser.console.LaserUserNotFoundException; import cern.laser.console.User; import cern.laser.console.UserHandler; public class UserHandlerImpl extends UserHandler { // The user private UserImpl user; // The list of the users private ArrayList users = new ArrayList(); public UserHandlerImpl(ORB orb, AcsLogger logger) throws LaserConsoleException { // Create a default user: test user = new UserImpl("test",orb,logger); // Add the user to the collection users.add(user); } public Collection getUsers() throws LaserConsoleException { return users; //throw new UnsupportedOperationException(); /* try { Collection users_ejb = null; try { users_ejb = userHome.findAll(); } catch (Exception e) { userHome = getConsoleUserEntityEJBHome(); users_ejb = userHome.findAll(); } Collection users = new ArrayList(); Iterator iterator = users_ejb.iterator(); while (iterator.hasNext()) { users.add(new UserImpl((ConsoleUserEntityEJB)iterator.next())); } return users; } catch (Exception e) { throw new LaserConsoleException("unable to get defined users : " + e.getMessage(), e); }*/ } public User getUser(String name, ORB orb, AcsLogger logger) throws LaserConsoleException { // Check if the user is already in the list boolean found=false; int t; for (t=0; t<users.size() && !found; t++) { if (((UserImpl)users.get(t)).getName().equalsIgnoreCase(name)) { user = (UserImpl)users.get(t); return user; } } user = new UserImpl(name,orb,logger); users.add(user); return user; //throw new UnsupportedOperationException(); /* User result = null; try { try { result = new UserImpl(userHome.findByName(name)); } catch (Exception e) { userHome = getConsoleUserEntityEJBHome(); result = new UserImpl(userHome.findByName(name)); } } catch (ObjectNotFoundException onfe) { throw new LaserUserNotFoundException("unable to get user : " + onfe.getMessage(), onfe); } catch (Exception e) { throw new LaserConsoleException("unable to get user : " + e.getMessage(), e); } return result;*/ } public User createUser(String name, String password) throws LaserConsoleException { throw new UnsupportedOperationException();/* ConsoleUserEntityEJB user = null; try { try { userHome.findByName(name); } catch (Exception e) { userHome = getConsoleUserEntityEJBHome(); userHome.findByName(name); } } catch (ObjectNotFoundException onf) { try { user = userHome.create(name, password); return new UserImpl(user); } catch (Exception e) { throw new LaserConsoleException("unable to create a new user : " + e.getMessage(), e); } } catch (Exception e) { throw new LaserConsoleException("unable to create a new user : " + e.getMessage(), e); } throw new LaserUserDuplicationException("user " + name + " is already defined");*/ } public void removeUser(String name) throws LaserConsoleException { throw new UnsupportedOperationException();/* try { ConsoleUserEntityEJB user = null; try { user = userHome.findByName(name); } catch (Exception e) { userHome = getConsoleUserEntityEJBHome(); userHome.findByName(name); } user.remove(); } catch (ObjectNotFoundException onfe) { new LaserUserNotFoundException("unable to get user : " + onfe.getMessage(), onfe); } catch (Exception e) { throw new LaserConsoleException("unable to remove the user : " + e.getMessage(), e); }*/ } private Object getConsoleUserEntityEJBHome() throws LaserConnectionException { throw new UnsupportedOperationException();/* ConsoleUserEntityEJBHome home = null; Enumeration contexts = laser.getLaserContexts(); StringBuffer errors = new StringBuffer(); while (contexts.hasMoreElements()) { try { Context context = (Context)contexts.nextElement(); home = (ConsoleUserEntityEJBHome)PortableRemoteObject.narrow(context.lookup("ConsoleUserEntityEJB"), ConsoleUserEntityEJBHome.class); return home; } catch (Exception e) { errors.append("\n["); errors.append(e.getMessage()); errors.append("]"); } } throw new LaserConnectionException("unable to connect to LASER : " + errors.toString());*/ } }