@Override public Object marshalValue(Env env, FeatureExpr ctx, Value value, Class argClass) { if (!value.isset()) { if (_isNotNull) { unexpectedNull(env, argClass); } return null; } Object obj = value.toJavaObject(); if (obj == null) { if (_isNotNull) { unexpectedNull(env, argClass); } return null; } else if (!argClass.isAssignableFrom(obj.getClass())) { // env.error(L.l("Can't assign {0} to {1}", obj, argClass)); unexpectedType(env, value, obj.getClass(), argClass); return null; } return obj; }
public BinaryStream fopen(Env env, StringValue path, StringValue mode, LongValue options) { boolean useIncludePath = (options.toLong() & StreamModule.STREAM_USE_PATH) != 0; Value pathComponent = UrlModule.parse_url(env, path, UrlModule.PHP_URL_PATH); if (!pathComponent.isset()) { log.info(L.l("no path component found in '{0}'", path.toString())); return null; } return ZlibModule.gzopen( env, pathComponent.toStringValue(env), mode.toString(), useIncludePath); }