Commit e2259e27 authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade clases base para dto de tipo geojson + avro

parent 20d60840
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
package es.redmic.brokerlib.avro.geodata.common;

public interface BaseEnumType {

	@Override
	public String toString();

}
+72 −0
Original line number Diff line number Diff line
package es.redmic.brokerlib.avro.geodata.common;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

import com.kjetland.jackson.jsonSchema.annotations.JsonSchemaIgnore;
import com.kjetland.jackson.jsonSchema.annotations.JsonSchemaNotNull;
import com.vividsolutions.jts.geom.Geometry;

public abstract class FeatureDTO<TProperties extends PropertiesBaseDTO, TGeometry extends Geometry>
		extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {

	private String id;

	private String uuid;

	@JsonSchemaIgnore
	protected GeoJSONFeatureType type;

	@JsonSchemaNotNull
	@NotNull
	@Valid
	private TProperties properties;

	@NotNull
	private TGeometry geometry;

	public FeatureDTO() {

	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getUuid() {
		return uuid;
	}

	public void setUuid(String uuid) {
		this.uuid = uuid;
	}

	public void setType(GeoJSONFeatureType type) {
		this.type = type;
	}

	public GeoJSONFeatureType getType() {
		return type;
	}

	public void setProperties(TProperties properties) {
		this.properties = properties;
	}

	public TProperties getProperties() {
		return properties;
	}

	public TGeometry getGeometry() {
		return geometry;
	}

	public void setGeometry(TGeometry geometry) {
		this.geometry = geometry;
	}

}
+37 −0
Original line number Diff line number Diff line
package es.redmic.brokerlib.avro.geodata.common;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

public enum GeoJSONFeatureType implements BaseEnumType {

	FEATURE(Constants.FEATURE);

	final String type;

	GeoJSONFeatureType(String type) {
		this.type = type;
	}

	@JsonCreator
	public static GeoJSONFeatureType fromString(String text) {
		if (text != null) {
			for (GeoJSONFeatureType b : GeoJSONFeatureType.values()) {
				if (text.equalsIgnoreCase(b.type)) {
					return b;
				}
			}
		}
		throw new IllegalArgumentException(text + " has no corresponding value");
	}

	@JsonValue
	@Override
	public String toString() {
		return type;
	}

	public static class Constants {
		public static final String FEATURE = "Feature";
	}
}
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
package es.redmic.brokerlib.avro.geodata.common;

public abstract class PropertiesBaseDTO extends org.apache.avro.specific.SpecificRecordBase
		implements org.apache.avro.specific.SpecificRecord {

}
+20 −0
Original line number Diff line number Diff line
package es.redmic.brokerlib.avro.geodata.common;

import javax.validation.constraints.Size;

import com.kjetland.jackson.jsonSchema.annotations.JsonSchemaIgnore;

public abstract class PropertiesDTO extends UpdatablePropertiesDTO {

	@JsonSchemaIgnore
	@Size(min = 1, max = 150)
	private String activityId;

	public String getActivityId() {
		return activityId;
	}

	public void setActivityId(String activityId) {
		this.activityId = activityId;
	}
}
Loading