1 24 package fr.dyade.aaa.jndi2.msg; 25 26 import javax.naming.*; 27 28 import java.util.*; 29 30 public class ListBindingsReply extends JndiReply { 31 32 private Binding[] bindings; 33 34 public ListBindingsReply(Binding[] bindings) { 35 this.bindings = bindings; 36 } 37 38 public final NamingEnumeration getEnumeration() { 39 return new NamingEnumerationImpl(bindings); 40 } 41 42 public Binding[] getContexts() { 43 Vector contexts = new Vector(); 44 for (int i = 0; i < bindings.length; i++) { 45 if (bindings[i].getObject() == null && 46 bindings[i].getClassName().equals( 47 Context.class.getName())) { 48 contexts.addElement(bindings[i]); 49 } 50 } 51 Binding[] res = new Binding[contexts.size()]; 52 contexts.copyInto(res); 53 return res; 54 } 55 56 public void resolveReferences() throws NamingException { 57 for (int i = 0; i < bindings.length; i++) { 58 bindings[i].setObject( 59 LookupReply.resolveObject( 60 bindings[i].getObject())); 61 } 62 } 63 64 private static class NamingEnumerationImpl 65 implements NamingEnumeration { 66 private Binding[] bindings; 67 private int index; 68 69 public NamingEnumerationImpl(Binding[] bindings) { 70 this.bindings = bindings; 71 this.index = 0; 72 } 73 74 public boolean hasMore() throws NamingException { 75 return hasMoreElements(); 76 } 77 78 public Object next() throws NamingException { 79 return nextElement(); 80 } 81 82 public void close() {} 83 84 public boolean hasMoreElements() { 85 return index < bindings.length; 86 } 87 88 public Object nextElement() { 89 if (index < bindings.length) { 90 return bindings[index++]; 91 } else { 92 throw new java.util.NoSuchElementException (); 93 } 94 } 95 } 96 } 97 | Popular Tags |