dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #22570
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10878: implemented support for coordinate in xml/json format for events
------------------------------------------------------------
revno: 10878
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Sat 2013-05-18 13:07:28 +0700
message:
implemented support for coordinate in xml/json format for events
added:
dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Coordinate.java
modified:
dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/BaseEventService.java
dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Event.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/BaseEventService.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/BaseEventService.java 2013-05-17 14:53:28 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/BaseEventService.java 2013-05-18 06:07:28 +0000
@@ -183,7 +183,8 @@
ImportSummary importSummary = new ImportSummary();
importSummary.setStatus( ImportStatus.SUCCESS );
- ProgramStageInstance programStageInstance = saveExecutionDate( program, organisationUnit, executionDate, event.getCompleted() );
+ ProgramStageInstance programStageInstance = saveExecutionDate( program, organisationUnit, executionDate,
+ event.getCompleted(), event.getCoordinate() );
String storedBy = event.getStoredBy();
@@ -243,7 +244,8 @@
return new ImportSummary();
}
- private ProgramStageInstance saveExecutionDate( Program program, OrganisationUnit organisationUnit, Date date, Boolean completed )
+ private ProgramStageInstance saveExecutionDate( Program program, OrganisationUnit organisationUnit, Date date, Boolean completed,
+ Coordinate coordinate )
{
ProgramStage programStage = program.getProgramStages().iterator().next();
ProgramInstance programInstance = programInstanceService.getProgramInstances( program ).iterator().next();
@@ -255,6 +257,18 @@
programStageInstance.setExecutionDate( date );
programStageInstance.setOrganisationUnit( organisationUnit );
+ if ( programStage.getCaptureCoordinates() )
+ {
+ if ( coordinate.isValid() )
+ {
+ programStageInstance.setCoordinates( coordinate.getCoordinateString() );
+ }
+ else
+ {
+ programStageInstance.setCoordinates( null );
+ }
+ }
+
if ( completed != null )
{
programStageInstance.setCompleted( completed );
=== added file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Coordinate.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Coordinate.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Coordinate.java 2013-05-18 06:07:28 +0000
@@ -0,0 +1,98 @@
+package org.hisp.dhis.dxf2.event;
+
+/*
+ * Copyright (c) 2004-2013, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
+import org.hisp.dhis.common.DxfNamespaces;
+import org.hisp.dhis.system.util.ValidationUtils;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@JacksonXmlRootElement( localName = "coordinate", namespace = DxfNamespaces.DXF_2_0 )
+public class Coordinate
+{
+ private Double latitude;
+
+ private Double longitude;
+
+ public Coordinate()
+ {
+ }
+
+ public Coordinate( Double latitude, Double longitude )
+ {
+ this.latitude = latitude;
+ this.longitude = longitude;
+ }
+
+ @JsonProperty( required = true )
+ @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0, isAttribute = true )
+ public Double getLatitude()
+ {
+ return latitude;
+ }
+
+ public void setLatitude( Double latitude )
+ {
+ this.latitude = latitude;
+ }
+
+ @JsonProperty( required = true )
+ @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0, isAttribute = true )
+ public Double getLongitude()
+ {
+ return longitude;
+ }
+
+ public void setLongitude( Double longitude )
+ {
+ this.longitude = longitude;
+ }
+
+ public boolean isValid()
+ {
+ return ValidationUtils.coordinateIsValid( getCoordinateString() );
+ }
+
+ public String getCoordinateString()
+ {
+ return "[" + longitude + "," + latitude + "]";
+ }
+
+ @Override
+ public String toString()
+ {
+ return "Coordinate{" +
+ "latitude=" + latitude +
+ ", longitude=" + longitude +
+ '}';
+ }
+}
=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Event.java'
--- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Event.java 2013-05-17 03:29:07 +0000
+++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/event/Event.java 2013-05-18 06:07:28 +0000
@@ -56,6 +56,8 @@
private String storedBy;
+ private Coordinate coordinate;
+
private List<DataValue> dataValues = new ArrayList<DataValue>();
public Event()
@@ -147,6 +149,18 @@
}
@JsonProperty
+ @JacksonXmlProperty( namespace = DxfNamespaces.DXF_2_0 )
+ public Coordinate getCoordinate()
+ {
+ return coordinate;
+ }
+
+ public void setCoordinate( Coordinate coordinate )
+ {
+ this.coordinate = coordinate;
+ }
+
+ @JsonProperty
@JacksonXmlElementWrapper( localName = "dataValues", namespace = DxfNamespaces.DXF_2_0 )
@JacksonXmlProperty( localName = "dataValue", namespace = DxfNamespaces.DXF_2_0 )
public List<DataValue> getDataValues()
@@ -170,6 +184,7 @@
", executionDate='" + executionDate + '\'' +
", completed=" + completed +
", storedBy='" + storedBy + '\'' +
+ ", coordinate=" + coordinate +
", dataValues=" + dataValues +
'}';
}