Source for javax.naming.directory.InitialDirContext

   1: /* InitialDirContext.java --
   2:    Copyright (C) 2000, 2001, 2004  Free Software Foundation, Inc.
   3: 
   4: This file is part of GNU Classpath.
   5: 
   6: GNU Classpath is free software; you can redistribute it and/or modify
   7: it under the terms of the GNU General Public License as published by
   8: the Free Software Foundation; either version 2, or (at your option)
   9: any later version.
  10: 
  11: GNU Classpath is distributed in the hope that it will be useful, but
  12: WITHOUT ANY WARRANTY; without even the implied warranty of
  13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14: General Public License for more details.
  15: 
  16: You should have received a copy of the GNU General Public License
  17: along with GNU Classpath; see the file COPYING.  If not, write to the
  18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19: 02110-1301 USA.
  20: 
  21: Linking this library statically or dynamically with other modules is
  22: making a combined work based on this library.  Thus, the terms and
  23: conditions of the GNU General Public License cover the whole
  24: combination.
  25: 
  26: As a special exception, the copyright holders of this library give you
  27: permission to link this library with independent modules to produce an
  28: executable, regardless of the license terms of these independent
  29: modules, and to copy and distribute the resulting executable under
  30: terms of your choice, provided that you also meet, for each linked
  31: independent module, the terms and conditions of the license of that
  32: module.  An independent module is a module which is not derived from
  33: or based on this library.  If you modify this library, you may extend
  34: this exception to your version of the library, but you are not
  35: obligated to do so.  If you do not wish to do so, delete this
  36: exception statement from your version. */
  37: 
  38: 
  39: package javax.naming.directory;
  40: 
  41: import java.util.Hashtable;
  42: 
  43: import javax.naming.Context;
  44: import javax.naming.InitialContext;
  45: import javax.naming.Name;
  46: import javax.naming.NamingEnumeration;
  47: import javax.naming.NamingException;
  48: import javax.naming.NoInitialContextException;
  49: import javax.naming.NotContextException;
  50: 
  51: /**
  52:  * @author Tom Tromey (tromey@redhat.com)
  53:  * @date June 25, 2001
  54:  */
  55: public class InitialDirContext extends InitialContext implements DirContext
  56: {
  57:   public InitialDirContext ()
  58:     throws NamingException
  59:   {
  60:     this (null);
  61:   }
  62: 
  63:   protected InitialDirContext (boolean lazy)
  64:     throws NamingException
  65:   {
  66:     super (lazy);
  67:   }
  68: 
  69:   public InitialDirContext (Hashtable<?, ?> environment)
  70:     throws NamingException
  71:   {
  72:     super (environment);
  73:   }
  74: 
  75:   // The InitialContext docs suggest that this exist.  And it does
  76:   // seem like a good idea.  but the InitialDirContext docs indicate
  77:   // it cannot be non-private.
  78:   private DirContext getURLOrDefaultInitDirCtx (Name name)
  79:     throws NamingException
  80:   {
  81:     Context c = getURLOrDefaultInitCtx (name);
  82:     if (c == null)
  83:       throw new NoInitialContextException ();
  84:     else if (! (c instanceof DirContext))
  85:       throw new NotContextException ();
  86:     return (DirContext) c;
  87:   }
  88: 
  89:   private DirContext getURLOrDefaultInitDirCtx (String name)
  90:     throws NamingException
  91:   {
  92:     Context c = getURLOrDefaultInitCtx (name);
  93:     if (c == null)
  94:       throw new NoInitialContextException ();
  95:     else if (! (c instanceof DirContext))
  96:       throw new NotContextException ();
  97:     return (DirContext) c;
  98:   }
  99: 
 100:   public Attributes getAttributes (String name)
 101:     throws NamingException
 102:   {
 103:     return getURLOrDefaultInitDirCtx (name).getAttributes (name);
 104:   }
 105: 
 106:   public Attributes getAttributes (String name, String[] attrIds)
 107:     throws NamingException
 108:   {
 109:     return getURLOrDefaultInitDirCtx (name).getAttributes (name, attrIds);
 110:   }
 111: 
 112:   public Attributes getAttributes (Name name)
 113:     throws NamingException
 114:   {
 115:     return getURLOrDefaultInitDirCtx (name).getAttributes (name);
 116:   }
 117: 
 118:   public Attributes getAttributes(Name name, String[] attrIds)
 119:     throws NamingException
 120:   {
 121:     return getURLOrDefaultInitDirCtx (name).getAttributes (name, attrIds);
 122:   }
 123: 
 124:   public void modifyAttributes(Name name, int mod_op, Attributes attrs)
 125:     throws NamingException
 126:   {
 127:     getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mod_op, attrs);
 128:   }
 129: 
 130:   public void modifyAttributes(String name, int mod_op, Attributes attrs)
 131:     throws NamingException
 132:   {
 133:     getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mod_op, attrs);
 134:   }
 135: 
 136:   public void modifyAttributes(Name name, ModificationItem[] mods)
 137:     throws NamingException
 138:   {
 139:     getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mods);
 140:   }
 141: 
 142:   public void modifyAttributes(String name, ModificationItem[] mods)
 143:     throws NamingException
 144:   {
 145:     getURLOrDefaultInitDirCtx (name).modifyAttributes (name, mods);
 146:   }
 147: 
 148:   public void bind(Name name, Object obj, Attributes attrs)
 149:     throws NamingException
 150:   {
 151:     getURLOrDefaultInitDirCtx (name).bind (name, obj, attrs);
 152:   }
 153: 
 154:   public void bind(String name, Object obj, Attributes attrs)
 155:     throws NamingException
 156:   {
 157:     getURLOrDefaultInitDirCtx (name).bind (name, obj, attrs);
 158:   }
 159: 
 160:   public void rebind(Name name, Object obj, Attributes attrs)
 161:     throws NamingException
 162:   {
 163:     getURLOrDefaultInitDirCtx (name).rebind (name, obj, attrs);
 164:   }
 165: 
 166:   public void rebind(String name, Object obj, Attributes attrs)
 167:     throws NamingException
 168:   {
 169:     getURLOrDefaultInitDirCtx (name).rebind (name, obj, attrs);
 170:   }
 171: 
 172:   public DirContext createSubcontext(Name name, Attributes attrs)
 173:     throws NamingException
 174:   {
 175:     return getURLOrDefaultInitDirCtx (name).createSubcontext (name, attrs);
 176:   }
 177: 
 178:   public DirContext createSubcontext(String name, Attributes attrs)
 179:     throws NamingException
 180:   {
 181:     return getURLOrDefaultInitDirCtx (name).createSubcontext (name, attrs);
 182:   }
 183: 
 184:   public DirContext getSchema(Name name)
 185:     throws NamingException
 186:   {
 187:     return getURLOrDefaultInitDirCtx (name).getSchema (name);
 188:   }
 189: 
 190:   public DirContext getSchema(String name)
 191:     throws NamingException
 192:   {
 193:     return getURLOrDefaultInitDirCtx (name).getSchema (name);
 194:   }
 195: 
 196:   public DirContext getSchemaClassDefinition(Name name)
 197:     throws NamingException
 198:   {
 199:     return getURLOrDefaultInitDirCtx (name).getSchemaClassDefinition (name);
 200:   }
 201: 
 202:   public DirContext getSchemaClassDefinition(String name)
 203:     throws NamingException
 204:   {
 205:     return getURLOrDefaultInitDirCtx (name).getSchemaClassDefinition (name);
 206:   }
 207: 
 208:   public NamingEnumeration<SearchResult> search(Name name,
 209:                                                 Attributes matchingAttributes,
 210:                                                 String[] attributesToReturn)
 211:     throws NamingException
 212:   {
 213:     return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes,
 214:                                                     attributesToReturn);
 215:   }
 216: 
 217:   public NamingEnumeration<SearchResult> search(String name,
 218:                                                 Attributes matchingAttributes,
 219:                                                 String[] attributesToReturn)
 220:     throws NamingException
 221:   {
 222:     return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes,
 223:                                                     attributesToReturn);
 224:   }
 225: 
 226:   public NamingEnumeration<SearchResult> search(Name name,
 227:                                                 Attributes matchingAttributes)
 228:     throws NamingException
 229:   {
 230:     return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes);
 231:   }
 232: 
 233:   public NamingEnumeration<SearchResult> search(String name,
 234:                                                 Attributes matchingAttributes)
 235:     throws NamingException
 236:   {
 237:     return getURLOrDefaultInitDirCtx (name).search (name, matchingAttributes);
 238:   }
 239: 
 240:   public NamingEnumeration<SearchResult> search(Name name, String filter,
 241:                                                 SearchControls cons)
 242:     throws NamingException
 243:   {
 244:     return getURLOrDefaultInitDirCtx (name).search (name, filter, cons);
 245:   }
 246: 
 247:   public NamingEnumeration<SearchResult> search(String name, String filter,
 248:                                                 SearchControls cons)
 249:     throws NamingException
 250:   {
 251:     return getURLOrDefaultInitDirCtx (name).search (name, filter, cons);
 252:   }
 253: 
 254:   public NamingEnumeration<SearchResult> search(Name name, String filterExpr,
 255:                                                 Object[] filterArgs,
 256:                                                 SearchControls cons)
 257:     throws NamingException
 258:   {
 259:     return getURLOrDefaultInitDirCtx (name).search (name, filterExpr,
 260:                                                     filterArgs, cons);
 261:   }
 262: 
 263:   public NamingEnumeration<SearchResult> search(String name,
 264:                                                 String filterExpr,
 265:                                                 Object[] filterArgs,
 266:                                                 SearchControls cons)
 267:     throws NamingException
 268:   {
 269:     return getURLOrDefaultInitDirCtx (name).search (name, filterExpr,
 270:                                                     filterArgs, cons);
 271:   }
 272: }