package com.silverforge.elasticsearchrawclient.queryDSL.queries.innerQueries.common; import android.text.TextUtils; import com.silverforge.elasticsearchrawclient.model.QueryTypeItem; import com.silverforge.elasticsearchrawclient.queryDSL.Constants; import com.silverforge.elasticsearchrawclient.definition.Queryable; import com.silverforge.elasticsearchrawclient.utils.QueryTypeArrayList; import java.util.Date; public abstract class FieldValueQuery implements Queryable { @Override public String getQueryString() { return null; } public static abstract class FieldValueInit<T extends FieldValueInit<T>> { protected QueryTypeArrayList<QueryTypeItem> queryBag = new QueryTypeArrayList<>(); protected abstract T self(); public T fieldName(String fieldName) { if (TextUtils.isEmpty(fieldName)) return allFields(); queryBag.addParentItem(Constants.FIELD_NAME, fieldName); return self(); } public T allFields() { queryBag.addParentItem(Constants.FIELD_NAME, "_all"); return self(); } // region value operators public T value(String value) { queryBag.addItem(Constants.VALUE, value); return self(); } // region integer numbers public T value(byte value) { queryBag.addItem(Constants.VALUE, value); return self(); } public T value(short value) { queryBag.addItem(Constants.VALUE, value); return self(); } public T value(int value) { queryBag.addItem(Constants.VALUE, value); return self(); } public T value(long value) { queryBag.addItem(Constants.VALUE, value); return self(); } // endregion // region float numbers public T value(float value) { queryBag.addItem(Constants.VALUE, value); return self(); } public T value(double value) { queryBag.addItem(Constants.VALUE, value); return self(); } // endregion public T value(Date value, String format) { queryBag.addItem(Constants.VALUE, value, format); return self(); } public T value(boolean value) { queryBag.addItem(Constants.VALUE, value); return self(); } // endregion } }