/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.query.dsl.impl; import org.hibernate.search.query.dsl.SpatialTermination; import org.hibernate.search.query.dsl.WithinContext; import org.hibernate.search.spatial.Coordinates; import org.hibernate.search.spatial.impl.Point; /** * @author Hardy Ferentschik */ final class ConnectedWithinContext implements WithinContext, WithinContext.LongitudeContext { private final QueryBuildingContext queryContext; private final QueryCustomizer queryCustomizer; private final SpatialQueryContext spatialContext; private double latitude; public ConnectedWithinContext(ConnectedSpatialContext mother) { queryContext = mother.getQueryContext(); queryCustomizer = mother.getQueryCustomizer(); spatialContext = mother.getSpatialContext(); } public ConnectedWithinContext(ConnectedSpatialMatchingContext mother) { queryContext = mother.getQueryContext(); queryCustomizer = mother.getQueryCustomizer(); spatialContext = mother.getSpatialContext(); } @Override public SpatialTermination ofCoordinates(Coordinates coordinates) { spatialContext.setCoordinates( coordinates ); return new ConnectedSpatialQueryBuilder( spatialContext, queryCustomizer, queryContext ); } @Override public LongitudeContext ofLatitude(double latitude) { this.latitude = latitude; return this; } @Override public SpatialTermination andLongitude(double longitude) { spatialContext.setCoordinates( Point.fromDegrees( latitude, longitude ) ); return new ConnectedSpatialQueryBuilder( spatialContext, queryCustomizer, queryContext ); } }