mirror of
https://github.com/status-im/react-native.git
synced 2025-02-26 16:10:58 +00:00
Make extractor generic
Differential Revision: D2605494 fb-gh-sync-id: 37e298598c07221f75250a309b283fae319298af
This commit is contained in:
parent
15c53f7563
commit
839756b6d4
@ -51,94 +51,94 @@ public abstract class BaseJavaModule implements NativeModule {
|
|||||||
static final public String METHOD_TYPE_REMOTE = "remote";
|
static final public String METHOD_TYPE_REMOTE = "remote";
|
||||||
static final public String METHOD_TYPE_REMOTE_ASYNC = "remoteAsync";
|
static final public String METHOD_TYPE_REMOTE_ASYNC = "remoteAsync";
|
||||||
|
|
||||||
private static abstract class ArgumentExtractor {
|
private static abstract class ArgumentExtractor<T> {
|
||||||
public int getJSArgumentsNeeded() {
|
public int getJSArgumentsNeeded() {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract @Nullable Object extractArgument(
|
public abstract @Nullable T extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex);
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_BOOLEAN = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Boolean> ARGUMENT_EXTRACTOR_BOOLEAN =
|
||||||
|
new ArgumentExtractor<Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public Boolean extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
return jsArguments.getBoolean(atIndex);
|
||||||
return Boolean.valueOf(jsArguments.getBoolean(atIndex));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_DOUBLE = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Double> ARGUMENT_EXTRACTOR_DOUBLE =
|
||||||
|
new ArgumentExtractor<Double>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public Double extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
return jsArguments.getDouble(atIndex);
|
||||||
return Double.valueOf(jsArguments.getDouble(atIndex));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_FLOAT = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Float> ARGUMENT_EXTRACTOR_FLOAT =
|
||||||
|
new ArgumentExtractor<Float>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public Float extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
return (float) jsArguments.getDouble(atIndex);
|
||||||
return Float.valueOf((float) jsArguments.getDouble(atIndex));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_INTEGER = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Integer> ARGUMENT_EXTRACTOR_INTEGER =
|
||||||
|
new ArgumentExtractor<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public Integer extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
return (int) jsArguments.getDouble(atIndex);
|
||||||
return Integer.valueOf((int) jsArguments.getDouble(atIndex));
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_STRING = new ArgumentExtractor() {
|
static final private ArgumentExtractor<String> ARGUMENT_EXTRACTOR_STRING =
|
||||||
|
new ArgumentExtractor<String>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public String extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
|
||||||
return jsArguments.getString(atIndex);
|
return jsArguments.getString(atIndex);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_ARRAY = new ArgumentExtractor() {
|
static final private ArgumentExtractor<ReadableNativeArray> ARGUMENT_EXTRACTOR_ARRAY =
|
||||||
|
new ArgumentExtractor<ReadableNativeArray>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public ReadableNativeArray extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
|
||||||
return jsArguments.getArray(atIndex);
|
return jsArguments.getArray(atIndex);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_MAP = new ArgumentExtractor() {
|
static final private ArgumentExtractor<ReadableMap> ARGUMENT_EXTRACTOR_MAP =
|
||||||
|
new ArgumentExtractor<ReadableMap>() {
|
||||||
@Override
|
@Override
|
||||||
public Object extractArgument(
|
public ReadableMap extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
|
||||||
return jsArguments.getMap(atIndex);
|
return jsArguments.getMap(atIndex);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_CALLBACK = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Callback> ARGUMENT_EXTRACTOR_CALLBACK =
|
||||||
|
new ArgumentExtractor<Callback>() {
|
||||||
@Override
|
@Override
|
||||||
public @Nullable Object extractArgument(
|
public @Nullable Callback extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
) {
|
|
||||||
if (jsArguments.isNull(atIndex)) {
|
if (jsArguments.isNull(atIndex)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int id = (int) jsArguments.getDouble(atIndex);
|
int id = (int) jsArguments.getDouble(atIndex);
|
||||||
return new CallbackImpl(catalystInstance, id);
|
return new CallbackImpl(catalystInstance, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static final private ArgumentExtractor ARGUMENT_EXTRACTOR_PROMISE = new ArgumentExtractor() {
|
static final private ArgumentExtractor<Promise> ARGUMENT_EXTRACTOR_PROMISE =
|
||||||
|
new ArgumentExtractor<Promise>() {
|
||||||
@Override
|
@Override
|
||||||
public int getJSArgumentsNeeded() {
|
public int getJSArgumentsNeeded() {
|
||||||
return 2;
|
return 2;
|
||||||
@ -147,9 +147,9 @@ public abstract class BaseJavaModule implements NativeModule {
|
|||||||
@Override
|
@Override
|
||||||
public Promise extractArgument(
|
public Promise extractArgument(
|
||||||
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
CatalystInstance catalystInstance, ReadableNativeArray jsArguments, int atIndex) {
|
||||||
Callback resolve = (Callback) ARGUMENT_EXTRACTOR_CALLBACK
|
Callback resolve = ARGUMENT_EXTRACTOR_CALLBACK
|
||||||
.extractArgument(catalystInstance, jsArguments, atIndex);
|
.extractArgument(catalystInstance, jsArguments, atIndex);
|
||||||
Callback reject = (Callback) ARGUMENT_EXTRACTOR_CALLBACK
|
Callback reject = ARGUMENT_EXTRACTOR_CALLBACK
|
||||||
.extractArgument(catalystInstance, jsArguments, atIndex + 1);
|
.extractArgument(catalystInstance, jsArguments, atIndex + 1);
|
||||||
return new PromiseImpl(resolve, reject);
|
return new PromiseImpl(resolve, reject);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user