/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2008 - 2009, Geomatys * * 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 org.geotoolkit.sos.xml.v100; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Objects; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; import javax.xml.namespace.QName; import org.geotoolkit.ogc.xml.v110.BBOXType; import org.geotoolkit.ogc.xml.v110.BinaryComparisonOpType; import org.geotoolkit.ogc.xml.v110.BinarySpatialOpType; import org.geotoolkit.ogc.xml.v110.ComparisonOpsType; import org.geotoolkit.ogc.xml.v110.DistanceBufferType; import org.geotoolkit.ogc.xml.v110.PropertyIsBetweenType; import org.geotoolkit.ogc.xml.v110.PropertyIsEqualToType; import org.geotoolkit.ogc.xml.v110.PropertyIsGreaterThanOrEqualToType; import org.geotoolkit.ogc.xml.v110.PropertyIsGreaterThanType; import org.geotoolkit.ogc.xml.v110.PropertyIsLessThanOrEqualToType; import org.geotoolkit.ogc.xml.v110.PropertyIsLessThanType; import org.geotoolkit.ogc.xml.v110.PropertyIsLikeType; import org.geotoolkit.ogc.xml.v110.PropertyIsNotEqualToType; import org.geotoolkit.ogc.xml.v110.PropertyIsNullType; import org.geotoolkit.ogc.xml.v110.SpatialOpsType; import org.geotoolkit.sos.xml.ResponseModeType; import org.opengis.filter.Filter; /** * <p>Java class for anonymous complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType> * <complexContent> * <extension base="{http://www.opengis.net/sos/1.0}RequestBaseType"> * <sequence minOccurs="0"> * <element name="offering" type="{http://www.w3.org/2001/XMLSchema}anyURI"/> * <element name="eventTime" maxOccurs="unbounded" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element ref="{http://www.opengis.net/ogc}temporalOps"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="procedure" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded" minOccurs="0"/> * <element name="observedProperty" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/> * <element name="featureOfInterest" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <choice> * <element ref="{http://www.opengis.net/ogc}spatialOps"/> * <element name="ObjectID" type="{http://www.w3.org/2001/XMLSchema}anyURI" maxOccurs="unbounded"/> * </choice> * </restriction> * </complexContent> * </complexType> * </element> * <element name="result" minOccurs="0"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element ref="{http://www.opengis.net/ogc}comparisonOps"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="responseFormat" type="{http://www.opengis.net/ows/1.1}MimeType"/> * <element name="resultModel" type="{http://www.w3.org/2001/XMLSchema}QName" minOccurs="0"/> * <element name="responseMode" type="{http://www.opengis.net/sos/1.0}responseModeType" minOccurs="0"/> * </sequence> * <attribute name="srsName" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> * </extension> * </complexContent> * </complexType> * </pre> * * @author Guilhem Legal * @module */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "GetObservation", propOrder = { "offering", "eventTime", "procedure", "observedProperty", "featureOfInterest", "result", "responseFormat", "resultModel", "responseMode" }) @XmlRootElement(name = "GetObservation") public class GetObservation extends RequestBaseType implements org.geotoolkit.sos.xml.GetObservation { @XmlSchemaType(name = "anyURI") private String offering; private List<EventTime> eventTime; @XmlSchemaType(name = "anyURI") private List<String> procedure; @XmlSchemaType(name = "anyURI") private List<String> observedProperty; private GetObservation.FeatureOfInterest featureOfInterest; private GetObservation.Result result; private String responseFormat; private QName resultModel; private String responseMode; @XmlAttribute @XmlSchemaType(name = "anyURI") private String srsName; /** * Empty constructor used by JAXB */ GetObservation(){ } /** * Build a new full GetObservation request */ public GetObservation(final String version, final String offering, final List<EventTime> eventTime, final List<String> procedure, final List<String> observedProperty, final GetObservation.FeatureOfInterest featureOfInterest, final GetObservation.Result result, final String responseFormat, final QName resultModel, final ResponseModeType responseMode, final String srsName){ super(version); this.eventTime = eventTime; this.featureOfInterest = featureOfInterest; this.observedProperty = observedProperty; this.offering = offering; this.procedure = procedure; this.responseFormat = responseFormat; if (responseMode != null) { this.responseMode = responseMode.value(); } this.result = result; this.resultModel = resultModel; this.srsName = srsName; } /** * Gets the value of the offering property. */ public String getOffering() { return offering; } /** * compatibility with SOS 2.0.0 * @return */ @Override public List<String> getOfferings() { if (offering != null) { return Arrays.asList(offering); } return new ArrayList<String>(); } /** * Gets the value of the eventTime property. */ public List<EventTime> getEventTime() { if (eventTime == null) { eventTime = new ArrayList<EventTime>(); } return Collections.unmodifiableList(eventTime); } /** * Gets the value of the procedure property. * (unmodifiable) */ @Override public List<String> getProcedure() { if (procedure == null) { procedure = new ArrayList<String>(); } return Collections.unmodifiableList(procedure); } /** * Gets the value of the observedProperty property. * (unmodifiable) */ @Override public List<String> getObservedProperty() { if (observedProperty == null) { observedProperty = new ArrayList<String>(); } return Collections.unmodifiableList(observedProperty); } /** * Gets the value of the featureOfInterest property. */ public GetObservation.FeatureOfInterest getFeatureOfInterest() { return featureOfInterest; } /** * Gets the value of the result property. */ public GetObservation.Result getResult() { return result; } /** * Gets the value of the responseFormat property. */ @Override public String getResponseFormat() { return responseFormat; } /** * Gets the value of the resultModel property. */ @Override public QName getResultModel() { return resultModel; } /** * Gets the value of the responseMode property. */ @Override public String getResponseMode() { return responseMode; } /** * Gets the value of the srsName property. */ @Override public String getSrsName() { return srsName; } @Override public List<String> getFeatureIds() { if (featureOfInterest != null) { return featureOfInterest.getObjectID(); } return new ArrayList<String>(); } @Override public Filter getSpatialFilter() { if (featureOfInterest != null) { return featureOfInterest.getSpatialOps(); } return null; } @Override public Filter getComparisonFilter() { if (result != null) { return result.getFilter(); } return null; } @Override public List<Filter> getTemporalFilter() { if (eventTime != null) { final List<Filter> temporalFilter = new ArrayList<Filter>(); for (EventTime time : eventTime) { temporalFilter.add(time.getFilter()); } return temporalFilter; } return new ArrayList<Filter>(); } /** * Verify if this entry is identical to�the specified object. */ @Override public boolean equals(final Object object) { if (object == this) { return true; } if (object instanceof GetObservation && super.equals(object)) { final GetObservation that = (GetObservation) object; return Objects.equals(this.eventTime, that.eventTime) && Objects.equals(this.featureOfInterest, that.featureOfInterest) && Objects.equals(this.observedProperty, that.observedProperty) && Objects.equals(this.offering, that.offering) && Objects.equals(this.procedure, that.procedure) && Objects.equals(this.responseFormat, that.responseFormat) && Objects.equals(this.responseMode, that.responseMode) && Objects.equals(this.result, that.result) && Objects.equals(this.resultModel, that.resultModel) && Objects.equals(this.srsName, that.srsName); } return false; } @Override public int hashCode() { int hash = 5; hash = 73 * hash + (this.offering != null ? this.offering.hashCode() : 0); hash = 73 * hash + (this.eventTime != null ? this.eventTime.hashCode() : 0); hash = 73 * hash + (this.procedure != null ? this.procedure.hashCode() : 0); hash = 73 * hash + (this.observedProperty != null ? this.observedProperty.hashCode() : 0); hash = 73 * hash + (this.featureOfInterest != null ? this.featureOfInterest.hashCode() : 0); hash = 73 * hash + (this.result != null ? this.result.hashCode() : 0); hash = 73 * hash + (this.responseFormat != null ? this.responseFormat.hashCode() : 0); hash = 73 * hash + (this.resultModel != null ? this.resultModel.hashCode() : 0); hash = 73 * hash + (this.responseMode != null ? this.responseMode.hashCode() : 0); hash = 73 * hash + (this.srsName != null ? this.srsName.hashCode() : 0); return hash; } @Override public String toString() { StringBuilder s = new StringBuilder("GetObservation:"); s.append('\n').append("offering=").append(offering).append('\n'); s.append("Response format:").append(responseFormat).append('\n'); s.append("SRS name:").append(srsName).append('\n'); if (featureOfInterest != null) { s.append("featureOfInterest:").append('\n').append(featureOfInterest.toString()).append('\n'); } if (responseMode != null) { s.append("response mode:").append('\n').append(responseMode.toString()).append('\n'); } if (result != null) { s.append("result:").append('\n').append(result.toString()).append('\n'); } if (resultModel != null) { s.append("result model:").append('\n').append(resultModel.toString()).append('\n'); } s.append("observed properties:").append('\n'); if (observedProperty != null) { for (String ss:observedProperty) { s.append(ss).append('\n'); } } s.append("procedures:").append('\n'); for (String ss:procedure) { s.append(ss).append('\n'); } s.append("eventTime:").append('\n'); if (eventTime != null) { for (EventTime ss:eventTime) { s.append(ss.toString()).append('\n'); } } return s.toString(); } /** * <p>Java class for anonymous complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <choice> * <element ref="{http://www.opengis.net/ogc}spatialOps"/> * <element ref="{http://www.opengis.net/ogc}Intersects"/> * <element ref="{http://www.opengis.net/ogc}Touches"/> * <element ref="{http://www.opengis.net/ogc}DWithin"/> * <element ref="{http://www.opengis.net/ogc}Disjoint"/> * <element ref="{http://www.opengis.net/ogc}Crosses"/> * <element ref="{http://www.opengis.net/ogc}Contains"/> * <element ref="{http://www.opengis.net/ogc}Beyond"/> * <element ref="{http://www.opengis.net/ogc}Equals"/> * <element ref="{http://www.opengis.net/ogc}Overlaps"/> * <element ref="{http://www.opengis.net/ogc}BBOX"/> * <element ref="{http://www.opengis.net/ogc}Within"/> * </choice> * <element name="ObjectID" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * @author Guilhem Legal */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "spatialOps", "intersects", "touches", "dWithin", "disjoint", "crosses", "contains", "beyond", "equals", "overlaps", "bbox", "within", "objectID" }) public static class FeatureOfInterest { @XmlElement(namespace = "http://www.opengis.net/ogc") private SpatialOpsType spatialOps; @XmlElement(name = "Intersects", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType intersects; @XmlElement(name = "Touches", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType touches; @XmlElement(name = "DWithin", namespace = "http://www.opengis.net/ogc") private DistanceBufferType dWithin; @XmlElement(name = "Disjoint", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType disjoint; @XmlElement(name = "Crosses", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType crosses; @XmlElement(name = "Contains", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType contains; @XmlElement(name = "Beyond", namespace = "http://www.opengis.net/ogc") private DistanceBufferType beyond; @XmlElement(name = "Equals", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType equals; @XmlElement(name = "Overlaps", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType overlaps; @XmlElement(name = "BBOX", namespace = "http://www.opengis.net/ogc") private BBOXType bbox; @XmlElement(name = "Within", namespace = "http://www.opengis.net/ogc") private BinarySpatialOpType within; @XmlElement(name = "ObjectID") private List<String> objectID = new ArrayList<>(); public FeatureOfInterest() { } public FeatureOfInterest(final List<String> objectID) { this.objectID = objectID; } public FeatureOfInterest(final BBOXType bbox) { this.bbox = bbox; } /** * Return the spatial operator whitch is not null.If there is not return null. * SO your can only use this method to access all the spatial operator * (there must be just one not null). * @return * possible object is * {@link SpatialOpsType } * */ public SpatialOpsType getSpatialOps() { if (bbox != null) { return bbox; } else if (intersects != null) { return intersects; } else if (touches != null) { return touches; } else if (dWithin != null) { return dWithin; } else if (disjoint != null) { return disjoint; } else if (crosses != null) { return crosses; } else if (contains != null) { return contains; } else if (beyond != null) { return beyond; } else if (equals != null) { return equals; } else if (overlaps != null) { return overlaps; } else if (within != null) { return within; } return spatialOps; } /** * Gets the value of the intersects property. */ public BinarySpatialOpType getIntersects() { return intersects; } /** * Gets the value of the touches property. */ public BinarySpatialOpType getTouches() { return touches; } /** * Gets the value of the dWithin property. */ public DistanceBufferType getDWithin() { return dWithin; } /** * Gets the value of the disjoint property. */ public BinarySpatialOpType getDisjoint() { return disjoint; } /** * Gets the value of the crosses property. */ public BinarySpatialOpType getCrosses() { return crosses; } /** * Gets the value of the contains property. */ public BinarySpatialOpType getContains() { return contains; } /** * Gets the value of the beyond property. */ public DistanceBufferType getBeyond() { return beyond; } /** * Gets the value of the equals property. */ public BinarySpatialOpType getEquals() { return equals; } /** * Gets the value of the overlaps property. */ public BinarySpatialOpType getOverlaps() { return overlaps; } /** * Gets the value of the bbox property. */ public BBOXType getBBOX() { return bbox; } /** * Gets the value of the within property. */ public BinarySpatialOpType getWithin() { return within; } /** * Gets the value of the objectID property. * (unmodifiable) */ public List<String> getObjectID() { return Collections.unmodifiableList(objectID); } /** * Verify if this entry is identical to�the specified object. */ @Override public boolean equals(final Object object) { if (object == this) { return true; } if (object instanceof FeatureOfInterest) { final FeatureOfInterest that = (FeatureOfInterest) object; return Objects.equals(this.bbox, that.bbox) && Objects.equals(this.beyond, that.beyond) && Objects.equals(this.contains, that.contains) && Objects.equals(this.crosses, that.crosses) && Objects.equals(this.dWithin, that.dWithin ) && Objects.equals(this.disjoint, that.disjoint) && Objects.equals(this.equals, that.equals) && Objects.equals(this.intersects, that.intersects) && Objects.equals(this.objectID, that.objectID) && Objects.equals(this.overlaps, that.overlaps) && Objects.equals(this.spatialOps, that.spatialOps) && Objects.equals(this.touches, that.touches) && Objects.equals(this.within, that.within); } return false; } @Override public int hashCode() { int hash = 3; hash = 23 * hash + (this.spatialOps != null ? this.spatialOps.hashCode() : 0); hash = 23 * hash + (this.intersects != null ? this.intersects.hashCode() : 0); hash = 23 * hash + (this.touches != null ? this.touches.hashCode() : 0); hash = 23 * hash + (this.dWithin != null ? this.dWithin.hashCode() : 0); hash = 23 * hash + (this.disjoint != null ? this.disjoint.hashCode() : 0); hash = 23 * hash + (this.crosses != null ? this.crosses.hashCode() : 0); hash = 23 * hash + (this.contains != null ? this.contains.hashCode() : 0); hash = 23 * hash + (this.beyond != null ? this.beyond.hashCode() : 0); hash = 23 * hash + (this.equals != null ? this.equals.hashCode() : 0); hash = 23 * hash + (this.overlaps != null ? this.overlaps.hashCode() : 0); hash = 23 * hash + (this.bbox != null ? this.bbox.hashCode() : 0); hash = 23 * hash + (this.within != null ? this.within.hashCode() : 0); hash = 23 * hash + (this.objectID != null ? this.objectID.hashCode() : 0); return hash; } } /** * <p>Java class for anonymous complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <choice> * <element ref="{http://www.opengis.net/ogc}comparisonOps"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsLessThan"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsGreaterThanOrEqualTo"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsEqualTo"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsNotEqualTo"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsLessThanOrEqualTo"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsLike"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsBetween"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsGreaterThan"/> * <element ref="{http://www.opengis.net/ogc}PropertyIsNull"/> * </choice> * </restriction> * </complexContent> * </complexType> * </pre> * * @author Guilhem Legal */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "comparisonOps", "propertyIsLessThan", "propertyIsGreaterThanOrEqualTo", "propertyIsEqualTo", "propertyIsNotEqualTo", "propertyIsLessThanOrEqualTo", "propertyIsLike", "propertyIsBetween", "propertyIsGreaterThan", "propertyIsNull" }) public static class Result { @XmlElement(namespace = "http://www.opengis.net/ogc") private ComparisonOpsType comparisonOps; @XmlElement(name = "PropertyIsLessThan", namespace = "http://www.opengis.net/ogc") private PropertyIsLessThanType propertyIsLessThan; @XmlElement(name = "PropertyIsGreaterThanOrEqualTo", namespace = "http://www.opengis.net/ogc") private PropertyIsGreaterThanOrEqualToType propertyIsGreaterThanOrEqualTo; @XmlElement(name = "PropertyIsEqualTo", namespace = "http://www.opengis.net/ogc") private PropertyIsEqualToType propertyIsEqualTo; @XmlElement(name = "PropertyIsNotEqualTo", namespace = "http://www.opengis.net/ogc") private PropertyIsNotEqualToType propertyIsNotEqualTo; @XmlElement(name = "PropertyIsLessThanOrEqualTo", namespace = "http://www.opengis.net/ogc") private PropertyIsLessThanOrEqualToType propertyIsLessThanOrEqualTo; @XmlElement(name = "PropertyIsLike", namespace = "http://www.opengis.net/ogc") private PropertyIsLikeType propertyIsLike; @XmlElement(name = "PropertyIsBetween", namespace = "http://www.opengis.net/ogc") private PropertyIsBetweenType propertyIsBetween; @XmlElement(name = "PropertyIsGreaterThan", namespace = "http://www.opengis.net/ogc") private PropertyIsGreaterThanType propertyIsGreaterThan; @XmlElement(name = "PropertyIsNull", namespace = "http://www.opengis.net/ogc") private PropertyIsNullType propertyIsNull; public Result() { } public Result(final ComparisonOpsType ops) { if (ops instanceof PropertyIsLessThanType) { this.propertyIsLessThan = (PropertyIsLessThanType) ops; } else if (ops instanceof PropertyIsGreaterThanOrEqualToType) { this.propertyIsGreaterThanOrEqualTo = (PropertyIsGreaterThanOrEqualToType) ops; } else if (ops instanceof PropertyIsBetweenType) { this.propertyIsBetween = (PropertyIsBetweenType) ops; } else if (ops instanceof PropertyIsEqualToType) { this.propertyIsEqualTo = (PropertyIsEqualToType) ops; } else if (ops instanceof PropertyIsGreaterThanType) { this.propertyIsGreaterThan = (PropertyIsGreaterThanType) ops; } else if (ops instanceof PropertyIsLessThanOrEqualToType) { this.propertyIsLessThanOrEqualTo = (PropertyIsLessThanOrEqualToType) ops; } else if (ops instanceof PropertyIsLikeType) { this.propertyIsLike = (PropertyIsLikeType) ops; } else if (ops instanceof PropertyIsNotEqualToType) { this.propertyIsNotEqualTo = (PropertyIsNotEqualToType) ops; } else if (ops instanceof PropertyIsNullType) { this.propertyIsNull = (PropertyIsNullType) ops; } else { comparisonOps = ops; } } /** * Gets the value of the comparisonOps property. */ public ComparisonOpsType getComparisonOps() { return comparisonOps; } /** * Gets the value of the propertyIsLessThan property. */ public BinaryComparisonOpType getPropertyIsLessThan() { return propertyIsLessThan; } /** * Gets the value of the propertyIsGreaterThanOrEqualTo property. */ public BinaryComparisonOpType getPropertyIsGreaterThanOrEqualTo() { return propertyIsGreaterThanOrEqualTo; } /** * Gets the value of the propertyIsEqualTo property. */ public BinaryComparisonOpType getPropertyIsEqualTo() { return propertyIsEqualTo; } /** * Gets the value of the propertyIsNotEqualTo property. */ public BinaryComparisonOpType getPropertyIsNotEqualTo() { return propertyIsNotEqualTo; } /** * Gets the value of the propertyIsLessThanOrEqualTo property. */ public BinaryComparisonOpType getPropertyIsLessThanOrEqualTo() { return propertyIsLessThanOrEqualTo; } /** * Gets the value of the propertyIsLike property. */ public PropertyIsLikeType getPropertyIsLike() { return propertyIsLike; } /** * Gets the value of the propertyIsBetween property. */ public PropertyIsBetweenType getPropertyIsBetween() { return propertyIsBetween; } /** * Gets the value of the propertyIsGreaterThan property. */ public BinaryComparisonOpType getPropertyIsGreaterThan() { return propertyIsGreaterThan; } /** * Gets the value of the propertyIsNull property. */ public PropertyIsNullType getPropertyIsNull() { return propertyIsNull; } public Filter getFilter() { if (this.propertyIsLessThan != null) { return this.propertyIsLessThan; } else if (this.propertyIsGreaterThanOrEqualTo != null) { return this.propertyIsGreaterThanOrEqualTo; } else if (this.propertyIsBetween != null) { return this.propertyIsBetween; } else if (this.propertyIsEqualTo != null) { return this.propertyIsEqualTo; } else if (this.propertyIsGreaterThan != null) { return this.propertyIsGreaterThan; } else if (this.propertyIsLessThan != null) { return this.propertyIsLessThan; } else if (this.propertyIsLessThanOrEqualTo != null) { return this.propertyIsLessThanOrEqualTo; } else if (this.propertyIsLike != null) { return this.propertyIsLike; } else if (this.propertyIsNotEqualTo != null) { return this.propertyIsNotEqualTo; } else if (this.propertyIsNull != null) { return this.propertyIsNull; } else { return comparisonOps; } } /** * Verify if this entry is identical to�the specified object. */ @Override public boolean equals(final Object object) { if (object == this) { return true; } if (object instanceof Result) { final Result that = (Result) object; return Objects.equals(this.comparisonOps, that.comparisonOps) && Objects.equals(this.propertyIsBetween, that.propertyIsBetween) && Objects.equals(this.propertyIsEqualTo, that.propertyIsEqualTo) && Objects.equals(this.propertyIsGreaterThan, that.propertyIsGreaterThan) && Objects.equals(this.propertyIsGreaterThanOrEqualTo, that.propertyIsGreaterThanOrEqualTo) && Objects.equals(this.propertyIsLessThan, that.propertyIsLessThan) && Objects.equals(this.propertyIsLessThanOrEqualTo, that.propertyIsLessThanOrEqualTo) && Objects.equals(this.propertyIsLike, that.propertyIsLike) && Objects.equals(this.propertyIsNotEqualTo, that.propertyIsNotEqualTo) && Objects.equals(this.propertyIsNull, that.propertyIsNull); } return false; } @Override public int hashCode() { int hash = 5; hash = 73 * hash + (this.comparisonOps != null ? this.comparisonOps.hashCode() : 0); hash = 73 * hash + (this.propertyIsLessThan != null ? this.propertyIsLessThan.hashCode() : 0); hash = 73 * hash + (this.propertyIsGreaterThanOrEqualTo != null ? this.propertyIsGreaterThanOrEqualTo.hashCode() : 0); hash = 73 * hash + (this.propertyIsEqualTo != null ? this.propertyIsEqualTo.hashCode() : 0); hash = 73 * hash + (this.propertyIsNotEqualTo != null ? this.propertyIsNotEqualTo.hashCode() : 0); hash = 73 * hash + (this.propertyIsLessThanOrEqualTo != null ? this.propertyIsLessThanOrEqualTo.hashCode() : 0); hash = 73 * hash + (this.propertyIsLike != null ? this.propertyIsLike.hashCode() : 0); hash = 73 * hash + (this.propertyIsBetween != null ? this.propertyIsBetween.hashCode() : 0); hash = 73 * hash + (this.propertyIsGreaterThan != null ? this.propertyIsGreaterThan.hashCode() : 0); hash = 73 * hash + (this.propertyIsNull != null ? this.propertyIsNull.hashCode() : 0); return hash; } } }