code: @Override
      public String lookup(Parameter p) throws NamespaceSyntaxWarning,
              IndexingFailure {
          if (nulls(p, p.getValue())) {
              throw new InvalidArgument("parameter is null");
          }
  
          Namespace ns = p.getNamespace();
          if (ns == null) {
              return null;
          }
  
          String resourceLocation = ns.getResourceLocation();
          if (resourceLocation == null) {
              throw new InvalidArgument("resourceLocation", resourceLocation);
          }
  
          // get opened namespace and lookup namespace parameter encoding
          JDBMNamespaceLookup il = openNamespaces.get(ns.getResourceLocation());
          if (il == null) {
              final String fmt = "Namespace '%s' is not open.";
              final String msg = String.format(fmt, resourceLocation);
              throw new IndexingFailure(resourceLocation, msg);
          }
  
          String encoding = il.lookup(p.getValue());
  
          if (encoding == null) {
              String rl = ns.getResourceLocation();
              String pref = ns.getPrefix();
              throw new NamespaceSyntaxWarning(rl, pref, p.getValue());
          }
          return encoding;
      }
docs: {@inheritDoc}