Class FeatureValueCondition
- java.lang.Object
-
- de.hybris.platform.core.FlexibleSearchTranslatable
-
- de.hybris.platform.core.GenericCondition
-
- de.hybris.platform.catalog.jalo.classification.util.FeatureValueCondition
-
- All Implemented Interfaces:
java.io.Serializable
public class FeatureValueCondition extends GenericCondition
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFeatureValueCondition.RangeBoundaryEnumeration determining if the range boundary we are querying for is the lower/upper.
-
Constructor Summary
Constructors Constructor Description FeatureValueCondition(ClassAttributeAssignment assignment, Language lang, java.lang.String productTypeAlias, Operator operator, java.lang.Object value)FeatureValueCondition(ClassAttributeAssignment assignment, Language lang, java.lang.String productTypeAlias, Operator operator, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringadjustString(java.lang.String src)protected booleancanCompareEnumValue()protected voidcheckOperator()Performs a plausablity check on current Operator.protected voidcheckValueType(java.lang.Object singleValue)static FeatureValueConditioncontains(ClassAttributeAssignment assignment, java.lang.String str)static FeatureValueConditionendsWith(ClassAttributeAssignment assignment, java.lang.String str)static FeatureValueConditionequals(ClassAttributeAssignment assignment, java.lang.Object value)static FeatureValueConditionequalsForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)FeatureFieldgetFeatureField()LanguagegetLanguage()java.lang.StringgetProductTypeAlias()java.util.MapgetResettableValues()Returns all resetable key/value pairs already set in this condition or in one of its subconditions.ClassificationAttributeUnitgetUnit()Returns the unit of the queried feature.static java.util.Set<Operator>getValidOperators(TypedFeature.FeatureType featureType)For the givenTypedFeature.FeatureType(e.g.static FeatureValueConditiongreater(ClassAttributeAssignment assignment, java.lang.Object value)static FeatureValueConditiongreaterForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)static FeatureValueConditionin(ClassAttributeAssignment assignment, java.lang.Object... values)static FeatureValueConditionin(ClassAttributeAssignment assignment, java.util.Collection values)booleanisCaseInsensitive()Tells whether or not string comparison should be done case insensitively.static FeatureValueConditionisNull(ClassAttributeAssignment assignment)static FeatureValueConditionless(ClassAttributeAssignment assignment, java.lang.Object value)static FeatureValueConditionlessForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)static FeatureValueConditionnotEquals(ClassAttributeAssignment assignment, java.lang.Object value)static FeatureValueConditionnotNull(ClassAttributeAssignment assignment)protected booleanrequiresOrder()voidsetCaseInsensitive(boolean insensitive)Changes whether or not string comparison should be done case insensitively.voidsetLanguage(Language lang)For localized features only: Allows to specify the value language explicitely - otherwise the session language would have been used.voidsetProductTypeAlias(java.lang.String alias)Allows to specify the alias of the product type within the enclosing query.voidsetResettableValue(java.lang.String key, java.lang.Object value)Resets the value defined by given key.voidsetUnit(ClassificationAttributeUnit unit)For features with existing unit only: Changes the target unit of this condition.protected voidsetValue(java.lang.Object value)static FeatureValueConditionstartsWith(ClassAttributeAssignment assignment, java.lang.String str)voidtoFlexibleSearch(java.lang.StringBuilder query, java.util.Map<java.lang.String,java.lang.String> typeIndexMap, java.util.Map<java.lang.String,java.lang.Object> valueMap)EXISTS({{ SELECT {feat.PK} FROM {ProductFeature AS feat} WHERE {feat.product}={<itemAlias>.pk} AND {feat.classificationAttributeAssignment}='<assignmentPK>' AND {feat.stringValue|numberValue|booleanValue} = | <> | < | > | IN ?value }})protected voidwriteValue(java.lang.StringBuilder query, java.lang.Object singleValue, java.util.Map valueMap)-
Methods inherited from class de.hybris.platform.core.GenericCondition
and, and, caseSensitiveLike, caseSensitiveNotLike, contains, createConditionForFieldComparison, createConditionForFieldComparison, createConditionForLiteralComparison, createConditionForValueComparison, createConditionForValueComparison, createConditionForValueComparison, createConditionForValueComparison, createConditionList, createConditionList, createConditionList, createConditionList, createContainsCondition, createEndsWithCondition, createEqualCondition, createGreaterCondition, createGreaterOrEqualCondition, createIsNotNullCondition, createIsNullCondition, createJoinCondition, createLessCondition, createLessOrEqualCondition, createLikeCondition, createNotLikeCondition, createStartsWithCondition, createSubQueryCondition, createUnequalCondition, endsWith, equals, equals, getComparison, getComparison, getComparison, getComparison, getComparison, getComparison, getNotNull, getNull, getOperator, greater, greaterOrEqual, in, isTranslatableToPolyglotDialect, less, lessOrEqual, like, like, notEquals, notEquals, notIn, notLike, notLike, or, or, setOperator, startsWith
-
Methods inherited from class de.hybris.platform.core.FlexibleSearchTranslatable
getAliasFromTypeMap, toPolyglotSearch
-
-
-
-
Constructor Detail
-
FeatureValueCondition
public FeatureValueCondition(ClassAttributeAssignment assignment, Language lang, java.lang.String productTypeAlias, Operator operator, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)
-
FeatureValueCondition
public FeatureValueCondition(ClassAttributeAssignment assignment, Language lang, java.lang.String productTypeAlias, Operator operator, java.lang.Object value)
-
-
Method Detail
-
isNull
public static FeatureValueCondition isNull(ClassAttributeAssignment assignment)
-
notNull
public static FeatureValueCondition notNull(ClassAttributeAssignment assignment)
-
equals
public static FeatureValueCondition equals(ClassAttributeAssignment assignment, java.lang.Object value)
-
equalsForRange
public static FeatureValueCondition equalsForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)
-
notEquals
public static FeatureValueCondition notEquals(ClassAttributeAssignment assignment, java.lang.Object value)
-
greater
public static FeatureValueCondition greater(ClassAttributeAssignment assignment, java.lang.Object value)
-
greaterForRange
public static FeatureValueCondition greaterForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)
-
less
public static FeatureValueCondition less(ClassAttributeAssignment assignment, java.lang.Object value)
-
lessForRange
public static FeatureValueCondition lessForRange(ClassAttributeAssignment assignment, java.lang.Object value, FeatureValueCondition.RangeBoundary boundary)
-
in
public static FeatureValueCondition in(ClassAttributeAssignment assignment, java.lang.Object... values)
-
in
public static FeatureValueCondition in(ClassAttributeAssignment assignment, java.util.Collection values)
-
startsWith
public static FeatureValueCondition startsWith(ClassAttributeAssignment assignment, java.lang.String str)
-
endsWith
public static FeatureValueCondition endsWith(ClassAttributeAssignment assignment, java.lang.String str)
-
contains
public static FeatureValueCondition contains(ClassAttributeAssignment assignment, java.lang.String str)
-
checkValueType
protected void checkValueType(java.lang.Object singleValue)
-
setLanguage
public void setLanguage(Language lang)
For localized features only: Allows to specify the value language explicitely - otherwise the session language would have been used.
-
getLanguage
public Language getLanguage()
-
getUnit
public ClassificationAttributeUnit getUnit()
Returns the unit of the queried feature. If a unit is present the statement will convert all values of other units into this unit to allow comparation.
-
setUnit
public void setUnit(ClassificationAttributeUnit unit)
For features with existing unit only: Changes the target unit of this condition. Only convertible units of the configured unit are allowed.
-
setProductTypeAlias
public void setProductTypeAlias(java.lang.String alias)
Allows to specify the alias of the product type within the enclosing query.This is always necessary when the product type is not the initial type of the enclosing query!
-
getProductTypeAlias
public java.lang.String getProductTypeAlias()
-
setCaseInsensitive
public void setCaseInsensitive(boolean insensitive)
Changes whether or not string comparison should be done case insensitively.
-
isCaseInsensitive
public boolean isCaseInsensitive()
Tells whether or not string comparison should be done case insensitively.
-
getFeatureField
public FeatureField getFeatureField()
-
canCompareEnumValue
protected boolean canCompareEnumValue()
-
setValue
protected void setValue(java.lang.Object value)
-
checkOperator
protected void checkOperator()
Description copied from class:GenericConditionPerforms a plausablity check on current Operator. Throws aIllegalArgumentException, if check fails.- Specified by:
checkOperatorin classGenericCondition
-
getResettableValues
public java.util.Map getResettableValues()
Description copied from class:GenericConditionReturns all resetable key/value pairs already set in this condition or in one of its subconditions.- Specified by:
getResettableValuesin classGenericCondition- Returns:
- Map A map containing all resettable key/value pairs.
-
setResettableValue
public void setResettableValue(java.lang.String key, java.lang.Object value)Description copied from class:GenericConditionResets the value defined by given key.- Specified by:
setResettableValuein classGenericCondition- Parameters:
key- original key for value parametervalue- a new Value
-
requiresOrder
protected boolean requiresOrder()
-
toFlexibleSearch
public void toFlexibleSearch(java.lang.StringBuilder query, java.util.Map<java.lang.String,java.lang.String> typeIndexMap, java.util.Map<java.lang.String,java.lang.Object> valueMap)EXISTS({{ SELECT {feat.PK} FROM {ProductFeature AS feat} WHERE {feat.product}={<itemAlias>.pk} AND {feat.classificationAttributeAssignment}='<assignmentPK>' AND {feat.stringValue|numberValue|booleanValue} = | <> | < | > | IN ?value }})- Specified by:
toFlexibleSearchin classFlexibleSearchTranslatable- Parameters:
query- contains the querytypeIndexMap- contains typeCode <> typeIndex mappingsvalueMap- contains valueQualifier <> value mappings
-
adjustString
protected java.lang.String adjustString(java.lang.String src)
-
writeValue
protected void writeValue(java.lang.StringBuilder query, java.lang.Object singleValue, java.util.Map valueMap)
-
getValidOperators
public static java.util.Set<Operator> getValidOperators(TypedFeature.FeatureType featureType)
For the givenTypedFeature.FeatureType(e.g. FeatureType.STRING) this will return a set of validOperators.- Returns:
- a Set of Operators which are valid for the given FeatureType
-
-