Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.query; import java.util.Collections; import java.util.Set; import org.apache.commons.lang.StringUtils; import com.google.common.collect.Sets; import com.enonic.cms.core.search.IndexType; import com.enonic.cms.core.search.builder.IndexFieldNameConstants; public class QueryField extends IndexFieldNameConstants { private static final Set<String> dateFields; static { dateFields = Sets.newTreeSet(String.CASE_INSENSITIVE_ORDER); Collections.addAll(dateFields, PUBLISH_FROM_FIELDNAME, PUBLISH_TO_FIELDNAME, ASSIGNMENT_DUE_DATE_FIELDNAME, TIMESTAMP_FIELDNAME, CONTENT_CREATED, CONTENT_MODIFIED); } private final String fieldName; private boolean renderAsHasChildQuery = false; private boolean renderAsIdQuery = false; private boolean attachmentField = false; private IndexType indexType; public QueryField(final String fieldName) { this.fieldName = fieldName; } public String getFieldName() { return fieldName; } public String getFieldNameForNumericQueries() { return fieldName + INDEX_FIELD_TYPE_SEPARATOR + NUMBER_FIELD_POSTFIX; } public String getFieldNameForDateQueries() { return fieldName + INDEX_FIELD_TYPE_SEPARATOR + DATE_FIELD_POSTFIX; } public boolean doBuildAsIdQuery() { return renderAsIdQuery; } public QueryField setRenderAsIdQuery(final boolean renderAsIdQuery) { this.renderAsIdQuery = renderAsIdQuery; return this; } public QueryField setRenderAsHasChildQuery(final boolean renderAsHasChildQuery) { this.renderAsHasChildQuery = renderAsHasChildQuery; return this; } public boolean doRenderAsHasChildQuery() { return renderAsHasChildQuery; } public IndexType getIndexType() { return indexType; } public QueryField setIndexType(final IndexType indexType) { this.indexType = indexType; return this; } public boolean isWildcardQueryField() { return StringUtils.contains(this.fieldName, "*"); } public boolean isDateField() { return dateFields.contains(this.fieldName); } public boolean isAttachmentField() { return attachmentField; } public QueryField setAttachmentField(final boolean attachmentField) { this.attachmentField = attachmentField; return this; } }