/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package Sirius.server.localserver.tree; import Sirius.server.middleware.types.*; //import Sirius.server.localserver.tree.link.*; import Sirius.server.newuser.*; /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ public class NodeReferenceList implements java.io.Serializable { //~ Instance fields -------------------------------------------------------- protected java.util.ArrayList<Node> locals; protected java.util.ArrayList<Link> remotes; private final transient org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(this.getClass()); //~ Constructors ----------------------------------------------------------- /** * Creates a new NodeReferenceList object. */ public NodeReferenceList() { setLocals(new java.util.ArrayList<Node>(0)); setRemotes(new java.util.ArrayList<Link>(0)); } /** * Creates a new NodeReferenceList object. * * @param nodes DOCUMENT ME! */ public NodeReferenceList(final java.util.ArrayList<Node> nodes) { setLocals(nodes); setRemotes(new java.util.ArrayList<Link>(0)); } /** * Creates a new NodeReferenceList object. * * @param nodes DOCUMENT ME! */ public NodeReferenceList(final Node[] nodes) { this(new java.util.ArrayList<Node>(java.util.Arrays.asList(nodes))); } /** * Creates a new NodeReferenceList object. * * @param tree DOCUMENT ME! * @param children DOCUMENT ME! * @param ug DOCUMENT ME! */ public NodeReferenceList(final AbstractTree tree, final java.util.ArrayList<Link> children, final UserGroup ug) { final int size = children.size(); Link child = null; setLocals(new java.util.ArrayList<Node>(size)); setRemotes(new java.util.ArrayList<Link>()); for (int i = 0; i < size; i++) { try { child = children.get(i); if (child.isRemote()) { remotes.add(child); } else { final Node n = tree.getNode(child.getNodeId(), ug); // if null filtered (no permission) if (n != null) { locals.add(n); } } } catch (Throwable e) { logger.error( "<LS> ERROR :: fehler im NodeReferenceList Konstruktor" // NOI18N + " index " // NOI18N + i + "size" // NOI18N + size, e); } } } /** * Creates a new NodeReferenceList object. * * @param tree DOCUMENT ME! * @param nodeIDs DOCUMENT ME! * @param ug DOCUMENT ME! */ public NodeReferenceList(final AbstractTree tree, final java.util.Vector nodeIDs, final UserGroup ug) { try { setLocals(new java.util.ArrayList<Node>(nodeIDs.size())); for (int i = 0; i < nodeIDs.size(); i++) { final Node n = tree.getNode(((Integer)nodeIDs.get(i)).intValue(), ug); // if null filtered (no permission) if (n != null) { locals.add(n); } } setRemotes(new java.util.ArrayList<Link>(0)); } catch (Throwable e) { logger.error("<LS> ERROR :: Error in NodeReferenceList Construktor", e); // NOI18N } } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public Node[] getLocalNodes() { return locals.toArray(new Node[locals.size()]); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public Link[] getRemoteLinks() { return (Link[])remotes.toArray(new Link[remotes.size()]); } /** * DOCUMENT ME! * * @param locals DOCUMENT ME! */ public void setLocals(final java.util.ArrayList<Node> locals) { this.locals = locals; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public java.util.ArrayList<Link> getRemotes() { return remotes; } /** * DOCUMENT ME! * * @param remotes DOCUMENT ME! */ public void setRemotes(final java.util.ArrayList<Link> remotes) { this.remotes = remotes; } }