Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.search;
import aQute.bnd.annotation.ProviderType;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.search.geolocation.GeoLocationPoint;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.LocalizationUtil;
import com.liferay.portal.kernel.util.StringBundler;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
/**
* @author Bruno Farache
* @author Brian Wing Shun Chan
* @author Allen Chiang
* @author Alex Wallace
*/
@ProviderType
public class Field implements Serializable {
public static final String ANY = StringPool.STAR;
public static final String ARTICLE_ID = "articleId";
public static final String ASSET_CATEGORY_ID = "assetCategoryId";
public static final String ASSET_CATEGORY_IDS = "assetCategoryIds";
public static final String ASSET_CATEGORY_TITLE = "assetCategoryTitle";
public static final String ASSET_CATEGORY_TITLES = "assetCategoryTitles";
public static final String ASSET_PARENT_CATEGORY_ID = "parentCategoryId";
public static final String ASSET_PARENT_CATEGORY_IDS = "parentCategoryIds";
public static final String ASSET_TAG_IDS = "assetTagIds";
public static final String ASSET_TAG_NAMES = "assetTagNames";
public static final String ASSET_VOCABULARY_ID = "assetVocabularyId";
public static final String ASSET_VOCABULARY_IDS = "assetVocabularyIds";
public static final String CAPTION = "caption";
public static final String CATEGORY_ID = "categoryId";
public static final String CLASS_NAME_ID = "classNameId";
public static final String CLASS_PK = "classPK";
public static final String CLASS_TYPE_ID = "classTypeId";
public static final String COMMENTS = "comments";
public static final String COMPANY_ID = "companyId";
public static final String CONTENT = "content";
public static final String CREATE_DATE = "createDate";
public static final String DEFAULT_LANGUAGE_ID = "defaultLanguageId";
public static final String DESCRIPTION = "description";
public static final String DISPLAY_DATE = "displayDate";
public static final String ENTRY_CLASS_NAME = "entryClassName";
public static final String ENTRY_CLASS_PK = "entryClassPK";
public static final String EXPIRATION_DATE = "expirationDate";
public static final String FOLDER_ID = "folderId";
public static final String GEO_LOCATION = "geoLocation";
public static final String GROUP_ID = "groupId";
public static final String GROUP_ROLE_ID = "groupRoleId";
public static final String HIDDEN = "hidden";
public static final String KEYWORD_SEARCH = "keywordSearch";
public static final String[] KEYWORDS = {
ASSET_CATEGORY_TITLES, ASSET_TAG_NAMES, COMMENTS, CONTENT, DESCRIPTION,
Field.PROPERTIES, Field.TITLE, Field.URL, Field.USER_NAME
};
public static final String LANGUAGE_ID = "languageId";
public static final String LAYOUT_UUID = "layoutUuid";
public static final String MODIFIED_DATE = "modified";
public static final String NAME = "name";
public static final String NODE_ID = "nodeId";
public static final String ORGANIZATION_ID = "organizationId";
/**
* @deprecated As of Wilberforce (7.0.x), replaced by {@link
* #ENTRY_CLASS_NAME}
*/
@Deprecated
public static final String PORTLET_ID = "portletId";
public static final String PRIORITY = "priority";
public static final String PROPERTIES = "properties";
public static final String PUBLISH_DATE = "publishDate";
/**
* @deprecated As of Judson (7.1.x), with no direct replacement
*/
@Deprecated
public static final String RATINGS = "ratings";
public static final String RELATED_ENTRY = "relatedEntry";
public static final String REMOVED_BY_USER_NAME = "removedByUserName";
public static final String REMOVED_DATE = "removedDate";
public static final String ROLE_ID = "roleId";
public static final String ROOT_ENTRY_CLASS_NAME = "rootEntryClassName";
public static final String ROOT_ENTRY_CLASS_PK = "rootEntryClassPK";
public static final String SCOPE_GROUP_ID = "scopeGroupId";
public static final String SNIPPET = "snippet";
public static final String SORTABLE_FIELD_SUFFIX = "sortable";
public static final String SPELL_CHECK_WORD = "spellCheckWord";
public static final String STAGING_GROUP = "stagingGroup";
public static final String STATUS = "status";
public static final String SUBTITLE = "subtitle";
public static final String TITLE = "title";
public static final String TREE_PATH = "treePath";
public static final String TYPE = "type";
public static final String UID = "uid";
public static final String[] UNSCORED_FIELD_NAMES = {
ASSET_CATEGORY_IDS, COMPANY_ID, ENTRY_CLASS_NAME, ENTRY_CLASS_PK,
FOLDER_ID, GROUP_ID, GROUP_ROLE_ID, ROLE_ID, SCOPE_GROUP_ID,
Field.USER_ID
};
public static final String URL = "url";
public static final String USER_GROUP_ID = "userGroupId";
public static final String USER_ID = "userId";
public static final String USER_NAME = "userName";
public static final String VERSION = "version";
public static final String VIEW_ACTION_ID = "viewActionId";
/**
* @deprecated As of Judson (7.1.x), with no direct replacement
*/
@Deprecated
public static final String VIEW_COUNT = "viewCount";
public static String getLocalizedName(Locale locale, String name) {
if (locale == null) {
return name;
}
String languageId = LocaleUtil.toLanguageId(locale);
return getLocalizedName(languageId, name);
}
public static String getLocalizedName(String languageId, String name) {
return LocalizationUtil.getLocalizedName(name, languageId);
}
public static String getSortableFieldName(String name) {
return name.concat(
StringPool.UNDERLINE
).concat(
SORTABLE_FIELD_SUFFIX
);
}
public static String getSortFieldName(Sort sort, String scoreFieldName) {
if (sort.getType() == Sort.SCORE_TYPE) {
return scoreFieldName;
}
String fieldName = sort.getFieldName();
if (isSortableFieldName(fieldName)) {
return fieldName;
}
if ((sort.getType() == Sort.STRING_TYPE) &&
!DocumentImpl.isSortableTextField(fieldName)) {
return scoreFieldName;
}
return getSortableFieldName(fieldName);
}
public static String getUID(String portletId, String field1) {
return getUID(portletId, field1, null);
}
public static String getUID(
String portletId, String field1, String field2) {
return getUID(portletId, field1, field2, null);
}
public static String getUID(
String portletId, String field1, String field2, String field3) {
return getUID(portletId, field1, field2, field3, null);
}
public static String getUID(
String portletId, String field1, String field2, String field3,
String field4) {
String uid = portletId + _UID_PORTLET + field1;
if (field2 != null) {
uid += _UID_FIELD + field2;
}
if (field3 != null) {
uid += _UID_FIELD + field3;
}
if (field4 != null) {
uid += _UID_FIELD + field4;
}
return uid;
}
public static boolean isSortableFieldName(String name) {
return name.endsWith(_SORTABLE_FIELD_SUFFIX);
}
public static boolean validateFieldName(String name) {
if (name.contains(StringPool.COMMA) ||
name.contains(StringPool.PERIOD) ||
name.contains(StringPool.POUND) ||
name.contains(StringPool.SLASH) || name.contains(StringPool.STAR) ||
name.startsWith(StringPool.UNDERLINE)) {
return false;
}
return true;
}
public Field(String name) {
validate(name);
_name = name;
}
public Field(String name, Map localizedValues) {
validate(name);
_name = name;
_localizedValues = localizedValues;
}
public Field(String name, String value) {
this(name, new String[] {value});
}
public Field(String name, String[] values) {
validate(name);
_name = name;
_values = values;
}
public void addField(Field field) {
_fields.add(field);
}
/**
* @deprecated As of Wilberforce (7.0.x), replaced by {@link Query#getBoost}
*/
@Deprecated
public float getBoost() {
return _boost;
}
public Date[] getDates() {
return _dates;
}
public List getFields() {
return _fields;
}
public GeoLocationPoint getGeoLocationPoint() {
return _geoLocationPoint;
}
public Map getLocalizedValues() {
return _localizedValues;
}
public String getName() {
return _name;
}
public Class getNumericClass() {
return _numericClass;
}
public Field getParentField() {
return _parentField;
}
public String getValue() {
if (ArrayUtil.isNotEmpty(_values)) {
return _values[0];
}
return null;
}
public String[] getValues() {
return _values;
}
public boolean hasChildren() {
return !getFields().isEmpty();
}
public boolean isArray() {
return false;
}
public boolean isDate() {
if (_dates != null) {
return true;
}
return false;
}
public boolean isLocalized() {
if (_localizedValues != null) {
return true;
}
return false;
}
public boolean isNested() {
if (getParentField() != null) {
return true;
}
return false;
}
public boolean isNumeric() {
return _numeric;
}
public boolean isSortable() {
return _sortable;
}
public boolean isTokenized() {
return _tokenized;
}
/**
* @deprecated As of Wilberforce (7.0.x), replaced by {@link
* Query#setBoost(float)}
*/
@Deprecated
public void setBoost(float boost) {
_boost = boost;
}
public void setDates(Date[] dates) {
_dates = dates;
}
public void setGeoLocationPoint(GeoLocationPoint geoLocationPoint) {
_geoLocationPoint = geoLocationPoint;
if (geoLocationPoint == null) {
_values = null;
}
else {
setValue(
StringBundler.concat(
"lat: ", String.valueOf(geoLocationPoint.getLatitude()),
", lon: ",
String.valueOf(geoLocationPoint.getLongitude())));
}
}
public void setLocalizedValues(Map localizedValues) {
_localizedValues = localizedValues;
}
public void setName(String name) {
_name = name;
}
public void setNumeric(boolean numeric) {
_numeric = numeric;
}
public void setNumericClass(Class numericClass) {
_numericClass = numericClass;
}
public void setParentField(Field parentField) {
_parentField = parentField;
}
public void setSortable(boolean sortable) {
_sortable = sortable;
}
public void setTokenized(boolean tokenized) {
_tokenized = tokenized;
}
public void setValue(String value) {
setValues(new String[] {value});
}
public void setValues(String[] values) {
_values = values;
}
public static class NestedFieldBuilder {
public NestedFieldBuilder addNestedField(
String name, String... values) {
Field field = new Field(name);
field.addField(new Field("value", values));
_addField(field);
return this;
}
public NestedFieldBuilder endArray() {
return endField();
}
public NestedFieldBuilder endField() {
if (_nestedFieldsBuilderFields.size() > 1) {
_nestedFieldsBuilderFields.removeLast();
}
return this;
}
public Field getField() {
if (!_nestedFieldsBuilderFields.isEmpty()) {
return _nestedFieldsBuilderFields.getLast();
}
return null;
}
public NestedFieldBuilder startArray(String name) {
FieldArray fieldArray = new FieldArray(name);
return _startField(fieldArray);
}
public NestedFieldBuilder startField() {
return startField(null);
}
public NestedFieldBuilder startField(String name) {
Field field = new Field(name);
return _startField(field);
}
private void _addField(Field field) {
Field lastField = _nestedFieldsBuilderFields.getLast();
lastField.addField(field);
}
private NestedFieldBuilder _startField(Field field) {
if (!_nestedFieldsBuilderFields.isEmpty()) {
_addField(field);
}
_nestedFieldsBuilderFields.add(field);
return this;
}
private final LinkedList _nestedFieldsBuilderFields =
new LinkedList<>();
}
protected void validate(String name) {
if (name.contains(StringPool.COMMA)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not contain ", StringPool.COMMA, ": ", name));
}
if (name.contains(StringPool.PERIOD)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not contain ", StringPool.PERIOD, ": ", name));
}
if (name.contains(StringPool.POUND)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not contain ", StringPool.POUND, ": ", name));
}
if (name.contains(StringPool.SLASH)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not contain ", StringPool.SLASH, ": ", name));
}
if (name.contains(StringPool.STAR)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not contain ", StringPool.STAR, ": ", name));
}
if (name.startsWith(StringPool.UNDERLINE)) {
throw new IllegalArgumentException(
StringBundler.concat(
"Name must not start with ", StringPool.UNDERLINE, ": ",
name));
}
}
private static final String _SORTABLE_FIELD_SUFFIX = "sortable";
private static final String _UID_FIELD = "_FIELD_";
private static final String _UID_PORTLET = "_PORTLET_";
private float _boost = 1;
private Date[] _dates;
private final List _fields = new ArrayList<>();
private GeoLocationPoint _geoLocationPoint;
private Map _localizedValues;
private String _name;
private boolean _numeric;
private Class _numericClass;
private Field _parentField;
private boolean _sortable;
private boolean _tokenized;
private String[] _values;
}