El ejemplo de espacio de nombres plano usa almacenamiento en memoria; no soporta persistencia. Si una implementaci�n de contexto soporta persistencia o no, est� determinado por el servicio de nombres/directorio subyacente o los requerimientos del proveedor de servicio.
Aqu� est� la implementaci�n de lookup():
public Object lookup(Name name) throws NamingException {
if (name.isEmpty()) {
// Ask to look up this context itself; create and return
// a new instance that has its own independent environment.
return (createCtx(myEnv));
}
// Extract the components that belong to this namespace
String nm = getMyComponents(name);
// Find the object in the internal hash table
Object answer = bindings.get(nm);
if (answer == null) {
throw new NameNotFoundException(name + " not found");
}
return answer;
}
De acuerdo a la especificaci�n JNDI, una lookup() de un nombre vac�o deber�a devolver una copia del propio contexto. Despu�s de extraer el componente que pertenece a ese espacio de nombres, la implementaci�n procede a buscar la uni�n nombrada desde su estructura de datos interna-- una hashtable. Si no la encuentra, lanza una NameNotFoundException. En una implementaci�n real, acceder�amos al servicio de nombres/directorio subyacente en lugar de acceder al hashtable.
Este ejemplo no sopota enlaces de referencias, por eso este m�todo no busca los LinkRefs o los trata especialmente.
�LookupLink
Esta definici�n de ejemplo de lookupLink() es la misma que su definici�n de lookup(). Este ejemplo no soporta enlaces de referencias. Puedes ver una descripci�n de c�mo soportar enlaces de referencia en la lecci�n Miscel�nea.