diff options
Diffstat (limited to 'libjava/classpath/javax/naming/spi/DirectoryManager.java')
-rw-r--r-- | libjava/classpath/javax/naming/spi/DirectoryManager.java | 262 |
1 files changed, 131 insertions, 131 deletions
diff --git a/libjava/classpath/javax/naming/spi/DirectoryManager.java b/libjava/classpath/javax/naming/spi/DirectoryManager.java index a6d91b20cfa..4abb5f1a601 100644 --- a/libjava/classpath/javax/naming/spi/DirectoryManager.java +++ b/libjava/classpath/javax/naming/spi/DirectoryManager.java @@ -73,28 +73,28 @@ public class DirectoryManager extends NamingManager // Try to create an object using the factory. Return null on // failure. private static Object tryCreateObject (ObjectFactory factory, - Object refInfo, - Name name, - Context nameCtx, - Hashtable environment, - Attributes attrs) + Object refInfo, + Name name, + Context nameCtx, + Hashtable environment, + Attributes attrs) throws Exception { if (factory instanceof DirObjectFactory) { - DirObjectFactory dof = (DirObjectFactory) factory; - return dof.getObjectInstance (refInfo, name, nameCtx, - environment, attrs); + DirObjectFactory dof = (DirObjectFactory) factory; + return dof.getObjectInstance (refInfo, name, nameCtx, + environment, attrs); } else return factory.getObjectInstance (refInfo, name, nameCtx, - environment); + environment); } public static Object getObjectInstance (Object refInfo, Name name, - Context nameCtx, - Hashtable<?, ?> environment, - Attributes attrs) + Context nameCtx, + Hashtable<?, ?> environment, + Attributes attrs) throws Exception { ObjectFactory factory = null; @@ -103,139 +103,139 @@ public class DirectoryManager extends NamingManager factory = ofb.createObjectFactory (refInfo, environment); else { - // First see if we have a Reference or a Referenceable. If so - // we do some special processing. - Object ref2 = refInfo; - if (refInfo instanceof Referenceable) - ref2 = ((Referenceable) refInfo).getReference (); - if (ref2 instanceof Reference) - { - Reference ref = (Reference) ref2; - - // If we have a factory class name then we use that. - String fClass = ref.getFactoryClassName (); - if (fClass != null) - { - // Exceptions here are passed to the caller. - Class k = Class.forName (fClass); - factory = (ObjectFactory) k.newInstance (); - } - else - { - // There's no factory class name. If the address is a - // StringRefAddr with address type `URL', then we try - // the URL's context factory. - Enumeration e = ref.getAll (); - while (e.hasMoreElements ()) - { - RefAddr ra = (RefAddr) e.nextElement (); - if (ra instanceof StringRefAddr - && "URL".equals (ra.getType ())) - { - factory - = (ObjectFactory) getURLContext (refInfo, - name, - nameCtx, - (String) ra.getContent (), - environment); - Object obj = tryCreateObject (factory, - refInfo, - name, - nameCtx, - environment, - attrs); - if (obj != null) - return obj; - } - } - - // Have to try the next step. - factory = null; - } - } - - // Now look at OBJECT_FACTORIES to find the factory. - if (factory == null) - { - StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, - environment, nameCtx); - - while (tokens.hasMoreTokens ()) - { - String klassName = tokens.nextToken (); - Class k = Class.forName (klassName); - factory = (ObjectFactory) k.newInstance (); - Object obj = tryCreateObject (factory, refInfo, name, - nameCtx, environment, attrs); - if (obj != null) - return obj; - } - - // Failure. - return refInfo; - } + // First see if we have a Reference or a Referenceable. If so + // we do some special processing. + Object ref2 = refInfo; + if (refInfo instanceof Referenceable) + ref2 = ((Referenceable) refInfo).getReference (); + if (ref2 instanceof Reference) + { + Reference ref = (Reference) ref2; + + // If we have a factory class name then we use that. + String fClass = ref.getFactoryClassName (); + if (fClass != null) + { + // Exceptions here are passed to the caller. + Class k = Class.forName (fClass); + factory = (ObjectFactory) k.newInstance (); + } + else + { + // There's no factory class name. If the address is a + // StringRefAddr with address type `URL', then we try + // the URL's context factory. + Enumeration e = ref.getAll (); + while (e.hasMoreElements ()) + { + RefAddr ra = (RefAddr) e.nextElement (); + if (ra instanceof StringRefAddr + && "URL".equals (ra.getType ())) + { + factory + = (ObjectFactory) getURLContext (refInfo, + name, + nameCtx, + (String) ra.getContent (), + environment); + Object obj = tryCreateObject (factory, + refInfo, + name, + nameCtx, + environment, + attrs); + if (obj != null) + return obj; + } + } + + // Have to try the next step. + factory = null; + } + } + + // Now look at OBJECT_FACTORIES to find the factory. + if (factory == null) + { + StringTokenizer tokens = getPlusPath (Context.OBJECT_FACTORIES, + environment, nameCtx); + + while (tokens.hasMoreTokens ()) + { + String klassName = tokens.nextToken (); + Class k = Class.forName (klassName); + factory = (ObjectFactory) k.newInstance (); + Object obj = tryCreateObject (factory, refInfo, name, + nameCtx, environment, attrs); + if (obj != null) + return obj; + } + + // Failure. + return refInfo; + } } if (factory == null) return refInfo; Object obj = tryCreateObject (factory, refInfo, name, - nameCtx, environment, attrs); + nameCtx, environment, attrs); return obj == null ? refInfo : obj; } public static DirStateFactory.Result getStateToBind (Object obj, - Name name, - Context nameCtx, - Hashtable<?, ?> environment, - Attributes attrs) + Name name, + Context nameCtx, + Hashtable<?, ?> environment, + Attributes attrs) throws NamingException { StringTokenizer tokens = getPlusPath (Context.STATE_FACTORIES, - environment, nameCtx); + environment, nameCtx); while (tokens.hasMoreTokens ()) { - String klassName = tokens.nextToken (); - try - { - Class k = Class.forName (klassName); - StateFactory factory = (StateFactory) k.newInstance (); - - DirStateFactory.Result result = null; - if (factory instanceof DirStateFactory) - { - DirStateFactory dsf = (DirStateFactory) factory; - result = dsf.getStateToBind (obj, name, nameCtx, environment, - attrs); - } - else - { - Object o = factory.getStateToBind (obj, name, nameCtx, - environment); - if (o != null) - result = new DirStateFactory.Result (o, attrs); - } - if (result != null) - return result; - } - catch (ClassNotFoundException _1) - { - // Ignore it. - } - catch (ClassCastException _2) - { - // This means that the class we found was not an - // ObjectFactory or that the factory returned something - // which was not a Context. - } - catch (InstantiationException _3) - { - // If we couldn't instantiate the factory we might get - // this. - } - catch (IllegalAccessException _4) - { - // Another possibility when instantiating. - } + String klassName = tokens.nextToken (); + try + { + Class k = Class.forName (klassName); + StateFactory factory = (StateFactory) k.newInstance (); + + DirStateFactory.Result result = null; + if (factory instanceof DirStateFactory) + { + DirStateFactory dsf = (DirStateFactory) factory; + result = dsf.getStateToBind (obj, name, nameCtx, environment, + attrs); + } + else + { + Object o = factory.getStateToBind (obj, name, nameCtx, + environment); + if (o != null) + result = new DirStateFactory.Result (o, attrs); + } + if (result != null) + return result; + } + catch (ClassNotFoundException _1) + { + // Ignore it. + } + catch (ClassCastException _2) + { + // This means that the class we found was not an + // ObjectFactory or that the factory returned something + // which was not a Context. + } + catch (InstantiationException _3) + { + // If we couldn't instantiate the factory we might get + // this. + } + catch (IllegalAccessException _4) + { + // Another possibility when instantiating. + } } return new DirStateFactory.Result (obj, attrs); |