/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.query; import org.apache.commons.lang.StringUtils; public class QueryFieldAndValue extends AbstractQueryFieldAndValue { private final QueryValue queryValue; public QueryFieldAndValue( final String path, final Object value ) { super( path ); this.queryValue = new QueryValue( value ); } public QueryFieldAndValue( final QueryField queryField, final QueryValue queryValue ) { super( queryField ); this.queryValue = queryValue; } public Object getValue() { if ( isQueryValueNumeric() ) { return queryValue.getNumericValue(); } if ( isQueryOnDateValue() ) { return queryValue.getDateTime(); } return queryValue.getStringValueNormalized(); } public String getValueForIdQuery() { if ( queryValue.isNumeric() ) { return StringUtils.substringBefore( queryValue.getStringValueNormalized(), "." ); } return queryValue.getStringValueNormalized(); } @Override protected boolean isQueryValueNumeric() { return queryValue.isNumeric(); } public boolean doBuildAsEmptyDateFieldQuery() { return queryPathIsDateAndValueEmpty(); } @Override protected boolean queryPathIsDateAndValueEmpty() { return isDateField() && queryValue.isEmpty(); } @Override protected boolean isQueryOnDateValue() { return queryValue.isDateTime(); } }