--- /dev/null
+package org.argeo.api.app.geo;
+
+import javax.xml.namespace.QName;
+
+import org.argeo.api.acr.Content;
+import org.argeo.api.acr.search.AndFilter;
+import org.locationtech.jts.geom.Geometry;
+
+import jakarta.json.stream.JsonGenerator;
+
+/** Transform a {@link Content} to an OGC feature. */
+public interface FeatureAdapter {
+ Geometry getDefaultGeometry(Content c, QName targetFeature);
+
+ void writeProperties(JsonGenerator g, Content content, QName targetFeature);
+
+ void addConstraintsForFeature(AndFilter filter, QName targetFeature);
+}
--- /dev/null
+package org.argeo.api.app.geo;
+
+/** Keys used for WFS KVP (key-value pair) encoding. */
+public enum WfsKvp {
+ CQL_FILTER("cql_filter"), //
+ OUTPUT_FORMAT("outputFormat"), //
+ TYPE_NAMES("typeNames"), //
+ BBOX("bbox"), //
+ FORMAT_OPTIONS("format_options"), //
+ ;
+
+ public final static String FILENAME_ = "filename:";
+
+ private final String key;
+
+ private WfsKvp(String key) {
+ this.key = key;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+}
+++ /dev/null
-package org.argeo.app.api.geo;
-
-import javax.xml.namespace.QName;
-
-import org.argeo.api.acr.Content;
-import org.argeo.api.acr.search.AndFilter;
-import org.argeo.api.app.EntityType;
-import org.argeo.app.geo.acr.GeoEntityUtils;
-import org.locationtech.jts.geom.Geometry;
-
-import jakarta.json.stream.JsonGenerator;
-
-public interface FeatureAdapter {
- default Geometry getDefaultGeometry(Content c, QName targetFeature) {
- // TODO deal with more defaults
- // TODO deal with target feature
- if (c.hasContentClass(EntityType.geopoint)) {
- return getGeoPointGeometry(c);
- }
- return null;
- }
-
- void writeProperties(JsonGenerator g, Content content, QName targetFeature);
-
- void addConstraintsForFeature(AndFilter filter, QName targetFeature);
-
- static Geometry getGeoPointGeometry(Content c) {
- if (c.hasContentClass(EntityType.geopoint)) {
- return GeoEntityUtils.toPoint(c);
-// double latitude = c.get(WGS84PosName.lat, Double.class).get();
-// double longitude = c.get(WGS84PosName.lon, Double.class).get();
-//
-// Coordinate coordinate = new Coordinate(longitude, latitude);
-// Point the_geom = JTS.GEOMETRY_FACTORY.createPoint(coordinate);
-// return the_geom;
- }
- return null;
- }
-}
+++ /dev/null
-package org.argeo.app.api.geo;
-
-/** Keys used for WFS KVP (key-value pair) encoding. */
-public enum WfsKvp {
- CQL_FILTER("cql_filter"), //
- OUTPUT_FORMAT("outputFormat"), //
- TYPE_NAMES("typeNames"), //
- BBOX("bbox"), //
- FORMAT_OPTIONS("format_options"), //
- ;
-
- public final static String FILENAME_ = "filename:";
-
- private final String key;
-
- private WfsKvp(String key) {
- this.key = key;
- }
-
- public String getKey() {
- return key;
- }
-
-}
--- /dev/null
+package org.argeo.app.geo.acr;
+
+import javax.xml.namespace.QName;
+
+import org.argeo.api.acr.Content;
+import org.argeo.api.app.EntityType;
+import org.argeo.api.app.geo.FeatureAdapter;
+import org.locationtech.jts.geom.Geometry;
+
+public abstract class AbstractFeatureAdapter implements FeatureAdapter {
+ @Override
+ public Geometry getDefaultGeometry(Content c, QName targetFeature) {
+ // TODO deal with more defaults
+ // TODO deal with target feature
+ if (c.hasContentClass(EntityType.geopoint)) {
+ return getGeoPointGeometry(c);
+ }
+ return null;
+ }
+
+ protected Geometry getGeoPointGeometry(Content c) {
+ if (c.hasContentClass(EntityType.geopoint)) {
+ return GeoEntityUtils.toPoint(c);
+// double latitude = c.get(WGS84PosName.lat, Double.class).get();
+// double longitude = c.get(WGS84PosName.lon, Double.class).get();
+//
+// Coordinate coordinate = new Coordinate(longitude, latitude);
+// Point the_geom = JTS.GEOMETRY_FACTORY.createPoint(coordinate);
+// return the_geom;
+ }
+ return null;
+ }
+
+}
import org.argeo.api.app.EntityName;
import org.argeo.api.app.EntityType;
import org.argeo.api.app.WGS84PosName;
+import org.argeo.api.app.geo.FeatureAdapter;
+import org.argeo.api.app.geo.WfsKvp;
import org.argeo.api.cms.CmsLog;
-import org.argeo.app.api.geo.FeatureAdapter;
-import org.argeo.app.api.geo.WfsKvp;
import org.argeo.app.geo.CqlUtils;
import org.argeo.app.geo.GeoJson;
import org.argeo.app.geo.GeoUtils;