protected Field createField( String name, Map<Locale, String> localizedValues) { return createField(name, localizedValues, false); }
@Override public void addKeyword(String name, String[] values) { if (values == null) { return; } createField(name, values); }
protected Field createField(String name, String... values) { return createField(name, false, values); }
@Override public void addLocalizedText(String name, Map<Locale, String> values) { if ((values == null) || values.isEmpty()) { return; } Field field = createField(name, values); field.setTokenized(true); }
protected void createNumberField( String name, boolean typify, Number value) { if (value == null) { return; } String valueString = String.valueOf(value); createSortableNumericField(name, typify, valueString, value.getClass()); createField(name, valueString); }
@Override public void addKeywordSortable(String name, String[] values) { createField(name, values); _createSortableTextField(name, true, values); }
@Override public void addLocalizedKeyword( String name, Map<Locale, String> values, boolean lowerCase) { if ((values == null) || values.isEmpty()) { return; } if (lowerCase) { Map<Locale, String> lowerCaseValues = new HashMap<>(values.size()); for (Map.Entry<Locale, String> entry : values.entrySet()) { String value = GetterUtil.getString(entry.getValue()); lowerCaseValues.put( entry.getKey(), StringUtil.toLowerCase(value)); } values = lowerCaseValues; } createField(name, values); }
@Override public void addLocalizedKeyword( String name, Map<Locale, String> values, boolean lowerCase, boolean sortable) { if ((values == null) || values.isEmpty()) { return; } if (lowerCase) { Map<Locale, String> lowerCaseValues = new HashMap<>(values.size()); for (Map.Entry<Locale, String> entry : values.entrySet()) { String value = GetterUtil.getString(entry.getValue()); lowerCaseValues.put( entry.getKey(), StringUtil.toLowerCase(value)); } values = lowerCaseValues; } createField(name, values, sortable); }
@Override public void addTextSortable(String name, String[] values) { if (values == null) { return; } Field field = createField(name, values); field.setTokenized(true); _createSortableTextField(name, true, values); }
protected Field createField( String name, boolean sortable, String... values) { Field field = createField(name); field.setSortable(sortable); field.setValues(values); return field; }
protected Field createField( String name, Map<Locale, String> localizedValues, boolean sortable) { Field field = createField(name); field.setLocalizedValues(localizedValues); field.setSortable(sortable); return field; }
@Override public void addKeywordSortable(String name, Boolean[] values) { if (values == null) { return; } String[] valuesString = ArrayUtil.toStringArray(values); createField(name, valuesString); _createSortableTextField(name, true, valuesString); }
protected <T extends Number & Comparable<? super T>> void createNumberField( String name, boolean typify, T... values) { if (values == null) { return; } createSortableNumericField(name, typify, values); createField(name, ArrayUtil.toStringArray(values)); }
@Override public void addText(String name, String[] values) { if (values == null) { return; } Field field = createField(name, values); field.setTokenized(true); createSortableKeywordField(name, values); }
protected void createKeywordField( String name, String value, boolean lowerCase) { if (lowerCase && Validator.isNotNull(value)) { value = StringUtil.toLowerCase(value); } createField(name, value); }
protected void createSortableNumericField( String name, boolean typify, String value, Class<? extends Number> clazz) { if (typify) { name = name.concat( StringPool.UNDERLINE ).concat( "Number" ); } Field field = createField(Field.getSortableFieldName(name), value); field.setNumeric(true); field.setNumericClass(clazz); }
@Override public void addDate(String name, Date[] values) { if (values == null) { return; } String[] datesString = new String[values.length]; Long[] datesTime = new Long[values.length]; for (int i = 0; i < values.length; i++) { Format dateFormat = _getDateFormat(); datesString[i] = dateFormat.format(values[i]); datesTime[i] = values[i].getTime(); } createSortableNumericField(name, false, datesTime); Field field = createField(name, datesString); field.setDates(values); }
@Override public void addTextSortable(String name, String value) { if (Validator.isNull(value)) { return; } Field field = createField(name, value); field.setTokenized(true); _createSortableTextField(name, true, value); }
@Override public void addText(String name, String value) { if (Validator.isNull(value)) { return; } Field field = createField(name, value); field.setTokenized(true); createSortableKeywordField(name, value); }