
com.rapleaf.jack.store.field.JsFields Maven / Gradle / Ivy
package com.rapleaf.jack.store.field;
import java.util.function.Function;
import com.google.gson.JsonObject;
import org.joda.time.DateTime;
import com.rapleaf.jack.store.JsRecord;
import com.rapleaf.jack.store.iface.ValueIndexer;
public final class JsFields {
private JsFields() {
}
// value fields
public static JsValueField createIntField(String key) {
return new JsValueField<>(key, ValueIndexer::putInt, JsRecord::getInt);
}
public static JsValueField createLongField(String key) {
return new JsValueField<>(key, ValueIndexer::putLong, JsRecord::getLong);
}
public static JsValueField createStringField(String key) {
return new JsValueField<>(key, ValueIndexer::putString, JsRecord::getString);
}
public static JsValueField createBooleanField(String key) {
return new JsValueField<>(key, ValueIndexer::putBoolean, JsRecord::getBoolean);
}
public static JsValueField createDoubleField(String key) {
return new JsValueField<>(key, ValueIndexer::putDouble, JsRecord::getDouble);
}
public static JsValueField createDateTimeField(String key) {
return new JsValueField<>(key, ValueIndexer::putDateTime, JsRecord::getDateTime);
}
public static JsValueField createJsonField(String key) {
return new JsValueField<>(key, ValueIndexer::putJson, JsRecord::getJson);
}
// list fields
public static JsListField createIntListField(String key) {
return new JsListField<>(key, ValueIndexer::putIntList, JsRecord::getIntList);
}
public static JsListField createLongListField(String key) {
return new JsListField<>(key, ValueIndexer::putLongList, JsRecord::getLongList);
}
public static JsListField createStringListField(String key) {
return new JsListField<>(key, ValueIndexer::putStringList, JsRecord::getStringList);
}
public static JsListField createBooleanListField(String key) {
return new JsListField<>(key, ValueIndexer::putBooleanList, JsRecord::getBooleanList);
}
public static JsListField createDoubleListField(String key) {
return new JsListField<>(key, ValueIndexer::putDoubleList, JsRecord::getDoubleList);
}
public static JsListField createDateTimeListField(String key) {
return new JsListField<>(key, ValueIndexer::putDateTimeList, JsRecord::getDateTimeList);
}
// enum fields
public static > JsEnumNameField createEnumNameField(String key, Function nameToEnumFunction) {
return new JsEnumNameField<>(key, nameToEnumFunction, ValueIndexer::putString, JsRecord::getString);
}
public static > JsEnumValueField createEnumValueField(String key, Function enumToValueFunction, Function valueToEnumFunction) {
return new JsEnumValueField<>(key, enumToValueFunction, valueToEnumFunction, ValueIndexer::putInt, JsRecord::getInt);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy