← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 13796: csd: support address/addressLine, requires attribute with naming convention Address_<Type>_<Compo...

 

------------------------------------------------------------
revno: 13796
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2014-01-21 14:35:08 +0700
message:
  csd: support address/addressLine, requires attribute with naming convention Address_<Type>_<Component>
modified:
  dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/common/domain/wsa/Address.java
  dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/domain/Address.java
  dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/webapi/CsdController.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-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/common/domain/wsa/Address.java'
--- dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/common/domain/wsa/Address.java	2014-01-16 15:26:39 +0000
+++ dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/common/domain/wsa/Address.java	2014-01-21 07:35:08 +0000
@@ -36,8 +36,8 @@
 /**
  * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
  */
-@XmlAccessorType( XmlAccessType.FIELD )
-@XmlType( name = "Address", namespace = "http://www.w3.org/2005/08/addressing"; )
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Address", namespace = "http://www.w3.org/2005/08/addressing";)
 public class Address
 {
     @XmlValue
@@ -47,6 +47,11 @@
     {
     }
 
+    public Address( String value )
+    {
+        this.value = value;
+    }
+
     public String getValue()
     {
         return value;

=== modified file 'dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/domain/Address.java'
--- dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/domain/Address.java	2014-01-16 15:26:39 +0000
+++ dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/domain/Address.java	2014-01-21 07:35:08 +0000
@@ -30,6 +30,7 @@
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.ArrayList;
@@ -42,7 +43,7 @@
 @XmlRootElement( name = "address", namespace = "urn:ihe:iti:csd:2013" )
 public class Address
 {
-    @XmlElement( name = "type", namespace = "urn:ihe:iti:csd:2013" )
+    @XmlAttribute( name = "type" )
     private String type;
 
     @XmlElement( name = "addressLine", namespace = "urn:ihe:iti:csd:2013" )
@@ -52,6 +53,11 @@
     {
     }
 
+    public Address( String type )
+    {
+        this.type = type;
+    }
+
     public String getType()
     {
         return type;

=== modified file 'dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/webapi/CsdController.java'
--- dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/webapi/CsdController.java	2014-01-17 07:59:42 +0000
+++ dhis-2/dhis-web/dhis-web-ohie/src/main/java/org/hisp/dhis/web/ohie/csd/webapi/CsdController.java	2014-01-21 07:35:08 +0000
@@ -28,6 +28,9 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.hisp.dhis.attribute.AttributeValue;
 import org.hisp.dhis.dataset.DataSet;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
 import org.hisp.dhis.organisationunit.OrganisationUnitGroup;
@@ -36,6 +39,8 @@
 import org.hisp.dhis.web.ohie.common.domain.soap.Fault;
 import org.hisp.dhis.web.ohie.common.domain.wsa.RelatesTo;
 import org.hisp.dhis.web.ohie.common.exception.SoapException;
+import org.hisp.dhis.web.ohie.csd.domain.Address;
+import org.hisp.dhis.web.ohie.csd.domain.AddressLine;
 import org.hisp.dhis.web.ohie.csd.domain.CodedType;
 import org.hisp.dhis.web.ohie.csd.domain.CommonName;
 import org.hisp.dhis.web.ohie.csd.domain.Contact;
@@ -70,6 +75,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
@@ -304,6 +310,40 @@
 
             facility.setRecord( record );
 
+            Map<String, List<AddressLine>> addressLines = Maps.newHashMap();
+
+            for ( AttributeValue attributeValue : organisationUnit.getAttributeValues() )
+            {
+                if ( attributeValue.getAttribute().getName().startsWith( "Address_" ) )
+                {
+                    String[] attributeSplit = attributeValue.getAttribute().getName().split( "_" );
+
+                    if ( attributeSplit.length > 3 )
+                    {
+                        continue;
+                    }
+
+                    if ( addressLines.get( attributeSplit[1] ) == null )
+                    {
+                        addressLines.put( attributeSplit[1], Lists.<AddressLine>newArrayList() );
+                    }
+
+                    AddressLine addressLine = new AddressLine();
+                    addressLine.setComponent( attributeSplit[2] );
+                    addressLine.setValue( attributeValue.getValue() );
+
+                    addressLines.get( attributeSplit[1] ).add( addressLine );
+                }
+            }
+
+            for ( String key : addressLines.keySet() )
+            {
+                Address address = new Address( key );
+                address.setAddressLines( addressLines.get( key ) );
+
+                facility.getAddresses().add( address );
+            }
+
             csd.getFacilityDirectory().getFacilities().add( facility );
         }