gcube-sdi-suite/gcube-geoserver-client/src/main/java/org/gcube/spatial/data/clients/geoserver/model/FeatureTypeInfo.java

149 lines
3.0 KiB
Java

package org.gcube.spatial.data.clients.geoserver.model;
import java.util.List;
import org.gcube.com.fasterxml.jackson.annotation.JsonInclude;
import org.gcube.com.fasterxml.jackson.annotation.JsonInclude.Include;
import org.gcube.com.fasterxml.jackson.annotation.JsonProperty;
import org.gcube.com.fasterxml.jackson.annotation.JsonRootName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@JsonInclude(Include.NON_NULL)
@JsonRootName(value = "featureType")
@NoArgsConstructor
public class FeatureTypeInfo {
public static enum ProjectionPolicy{
FORCE_DECLARED
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class Namespace{
private String name;
private String href;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class KeywordSet{
private List<String> string;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class MetadataLink{
private String type;
private String metadataType;
private String content;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class BoundingBox{
private Number minx;
private Number maxx;
private Number miny;
private Number maxy;
private String crs;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class Entry{
private String key;
private String value;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class Store{
@JsonProperty("@class")
private String clazz;
private String name;
private String href;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class AttributeList{
public List<Attribute> attribute;
}
@Data
@JsonInclude(Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public static class Attribute{
private String name;
private Integer minOccurs;
private Integer maxOccurs;
private Boolean nillable;
private String binding;
private Integer length;
}
private String name;
private String nativeName;
private Namespace namespace;
private String title;
@JsonProperty("abstract")
private String abstractField;
private KeywordSet keywords;
private List<MetadataLink> metadataLinks;
private List<MetadataLink> dataLinks;
private String nativeCRS;
private String srs;
private BoundingBox nativeBoundingBox;
private BoundingBox latLonBoundingBox;
private List<Entry> metadata;
private Store store;
private String cqlFilter;
private Integer maxFeatures;
private Number numDecimals;
private String responseSRS;
private Boolean overridingServiceSRS;
private Boolean skipNumberMatched;
private Boolean circularArcPresent;
private Number linearizationTolerance;
private AttributeList attributes;
private Boolean enabled;
private ProjectionPolicy projectionPolicy;
}