![JAR search and dependency download from the Maven repository](/logo.png)
net.intelie.liverig.witsml.query.Query Maven / Gradle / Ivy
The newest version!
package net.intelie.liverig.witsml.query;
import net.intelie.liverig.parser.MultiMapEventBuilder;
import net.intelie.liverig.parser.ParseException;
import net.intelie.liverig.witsml.WITSMLResult;
import net.intelie.liverig.witsml.objects.CurrencyValue;
import net.intelie.liverig.witsml.objects.MeasureValue;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
public interface Query {
String type();
String options();
String query();
Object parse(WITSMLResult witsmlResult) throws ParseException;
abstract class AbstractParser implements MultiMapEventBuilder.EventOutput {
@Override
@SuppressWarnings("unchecked")
public void event(Map data) {
Object object = data.get("liverig__object");
event(object instanceof Map ? (Map) object : data, data);
}
protected abstract void event(Map object, Map data);
@Nullable
static String getString(@NotNull Map, ?> map, @NotNull String key) {
Object value = map.get(key);
return value instanceof String ? (String) value : null;
}
@Nullable
static Double getDouble(@NotNull Map, ?> map, @NotNull String key) {
Object value = stringToDouble(map.get(key));
return value instanceof Double ? (Double) value : value instanceof Number ? ((Number) value).doubleValue() : null;
}
@Nullable
static Integer getInteger(@NotNull Map, ?> map, @NotNull String key) {
Object value = stringToInteger(map.get(key));
return value instanceof Integer ? (Integer) value : value instanceof Number ? ((Number) value).intValue() : null;
}
@Nullable
private static Object stringToInteger(@Nullable Object value) {
try {
return value instanceof String ? Integer.valueOf((String) value) : value;
} catch (NumberFormatException e) {
return value;
}
}
@Nullable
private static Object stringToDouble(@Nullable Object value) {
try {
return value instanceof String ? Double.valueOf((String) value) : value;
} catch (NumberFormatException e) {
return value;
}
}
@NotNull
static List> getListOrEmpty(@NotNull Map, ?> map, @NotNull String key) {
Object value = map.get(key);
return value instanceof List ? (List>) value : Collections.emptyList();
}
@NotNull
static Map, ?> getMapOrValue(@NotNull Map, ?> map, @NotNull String key) {
Object value = map.get(key);
return value instanceof Map ? (Map, ?>) value : value != null ? Collections.singletonMap("value", value) : Collections.emptyMap();
}
@Nullable
static String getStringOrValue(@NotNull Map, ?> map, @NotNull String key) {
return getString(getMapOrValue(map,key),"value");
}
@Nullable
static MeasureValue getMeasureValue(@NotNull Map, ?> map, @NotNull String key) {
Object value = map.get(key);
if (!(value instanceof Map) || value == null) return null;
Map, ?> mapValue = (Map, ?>) value;
return new MeasureValue(getString(mapValue, "uom"), getString(mapValue, "datum"), getDouble(mapValue, "value"));
}
@Nullable
static CurrencyValue getCurrencyValue(@NotNull Map, ?> map, @NotNull String key) {
Object value = map.get(key);
if (!(value instanceof Map) || value == null) return null;
Map, ?> mapValue = (Map, ?>) value;
return new CurrencyValue(getString(mapValue, "currency"), getDouble(mapValue, "value"));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy