methodName = methodName.substring(4);
methodName = methodName.substring(8);
  private void introspectPhpModuleClass(Class cl)    throws IllegalAccessException, InstantiationException  {    log.fine("PHP loading module " + cl.getName());    QuercusModule module = (QuercusModule) cl.newInstance();    _modules.put(module.getClass().getName(), module);    Map<String,Value> map = module.getConstMap();    if (map != null)      _constMap = new ChainedMap<String,Value>(_constMap, map);    for (Field field : cl.getFields()) {      if (! Modifier.isPublic(field.getModifiers()))        continue;            if (! Modifier.isStatic(field.getModifiers()))        continue;            if (! Modifier.isFinal(field.getModifiers()))        continue;      Object value = field.get(null);      if (value == null)	_constMap.put(field.getName(), NullValue.NULL);      else if (Byte.class.equals(value.getClass()) ||	       Short.class.equals(value.getClass()) ||	       Integer.class.equals(value.getClass()) ||	       Long.class.equals(value.getClass())) {	_constMap.put(field.getName(),		      LongValue.create(((Number) value).longValue()));      }      else if (Float.class.equals(value.getClass()) ||	       Double.class.equals(value.getClass())) {	_constMap.put(field.getName(),		      DoubleValue.create(((Number) value).doubleValue()));      }      else if (String.class.equals(value.getClass())) {	_constMap.put(field.getName(),		      new StringValue((String) value));      }      else {	// XXX: unknown types, e.g. Character?      }    }        Map<String,StringValue> iniMap = module.getDefaultIni();    if (map != null)      _iniMap.putAll(iniMap);    for (Method method : cl.getMethods()) {      if (! Modifier.isPublic(method.getModifiers()))        continue;      Class retType = method.getReturnType();      if (void.class.isAssignableFrom(retType))        continue;      Class []params = method.getParameterTypes();      try {	StaticFunction function = new StaticFunction(this, module, method);	String methodName = method.getName();	if (methodName.startsWith("quercus_"))	  methodName = methodName.substring(4);	_staticFunctions.put(methodName, function);      } catch (Exception e) {	log.log(Level.FINE, e.toString(), e);      }    }  }