dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #15150
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 5359: merged with dxf2: added controllers and json/xml for document, validationrule, validationrulegroup
Merge authors:
Morten Olav Hansen (mortenoh)
------------------------------------------------------------
revno: 5359 [merge]
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2011-12-11 00:24:56 +0100
message:
merged with dxf2: added controllers and json/xml for document, validationrule, validationrulegroup
added:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/DocumentXmlAdapter.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleGroupXmlAdapter.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleXmlAdapter.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Documents.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroups.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRules.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/DocumentController.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleController.java
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleGroupController.java
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Document.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/DocumentService.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/Expression.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRule.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroup.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/document/impl/DefaultDocumentService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/document/hibernate/Document.hbm.xml
dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.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
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/DocumentXmlAdapter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/DocumentXmlAdapter.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/DocumentXmlAdapter.java 2011-12-10 23:03:56 +0000
@@ -0,0 +1,60 @@
+package org.hisp.dhis.common.adapter;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.document.Document;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import java.util.UUID;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class DocumentXmlAdapter extends XmlAdapter<BaseIdentifiableObject, Document>
+{
+ private BaseIdentifiableObjectXmlAdapter baseIdentifiableObjectXmlAdapter = new BaseIdentifiableObjectXmlAdapter();
+
+ @Override
+ public Document unmarshal( BaseIdentifiableObject identifiableObject ) throws Exception
+ {
+ Document document = new Document();
+
+ document.setUid( identifiableObject.getUid() );
+ document.setLastUpdated( identifiableObject.getLastUpdated() );
+ document.setName( identifiableObject.getName() == null ? UUID.randomUUID().toString() : identifiableObject.getName() );
+
+ return document;
+ }
+
+ @Override
+ public BaseIdentifiableObject marshal( Document document ) throws Exception
+ {
+ return baseIdentifiableObjectXmlAdapter.marshal( document );
+ }
+}
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleGroupXmlAdapter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleGroupXmlAdapter.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleGroupXmlAdapter.java 2011-12-10 22:36:01 +0000
@@ -0,0 +1,60 @@
+package org.hisp.dhis.common.adapter;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.validation.ValidationRuleGroup;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import java.util.UUID;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class ValidationRuleGroupXmlAdapter extends XmlAdapter<BaseIdentifiableObject, ValidationRuleGroup>
+{
+ private BaseIdentifiableObjectXmlAdapter baseIdentifiableObjectXmlAdapter = new BaseIdentifiableObjectXmlAdapter();
+
+ @Override
+ public ValidationRuleGroup unmarshal( BaseIdentifiableObject identifiableObject ) throws Exception
+ {
+ ValidationRuleGroup validationRuleGroup = new ValidationRuleGroup();
+
+ validationRuleGroup.setUid( identifiableObject.getUid() );
+ validationRuleGroup.setLastUpdated( identifiableObject.getLastUpdated() );
+ validationRuleGroup.setName( identifiableObject.getName() == null ? UUID.randomUUID().toString() : identifiableObject.getName() );
+
+ return validationRuleGroup;
+ }
+
+ @Override
+ public BaseIdentifiableObject marshal( ValidationRuleGroup validationRuleGroup ) throws Exception
+ {
+ return baseIdentifiableObjectXmlAdapter.marshal( validationRuleGroup );
+ }
+}
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleXmlAdapter.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleXmlAdapter.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/common/adapter/ValidationRuleXmlAdapter.java 2011-12-10 22:36:01 +0000
@@ -0,0 +1,60 @@
+package org.hisp.dhis.common.adapter;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.validation.ValidationRule;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import java.util.UUID;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+public class ValidationRuleXmlAdapter extends XmlAdapter<BaseIdentifiableObject, ValidationRule>
+{
+ private BaseIdentifiableObjectXmlAdapter baseIdentifiableObjectXmlAdapter = new BaseIdentifiableObjectXmlAdapter();
+
+ @Override
+ public ValidationRule unmarshal( BaseIdentifiableObject identifiableObject ) throws Exception
+ {
+ ValidationRule validationRule = new ValidationRule();
+
+ validationRule.setUid( identifiableObject.getUid() );
+ validationRule.setLastUpdated( identifiableObject.getLastUpdated() );
+ validationRule.setName( identifiableObject.getName() == null ? UUID.randomUUID().toString() : identifiableObject.getName() );
+
+ return validationRule;
+ }
+
+ @Override
+ public BaseIdentifiableObject marshal( ValidationRule validationRule ) throws Exception
+ {
+ return baseIdentifiableObjectXmlAdapter.marshal( validationRule );
+ }
+}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Document.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Document.java 2011-12-09 20:58:29 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Document.java 2011-12-10 23:03:56 +0000
@@ -38,7 +38,7 @@
* @author Lars Helge Overland
* @version $Id$
*/
-@XmlRootElement( name = "dataElement", namespace = Dxf2Namespace.NAMESPACE )
+@XmlRootElement( name = "document", namespace = Dxf2Namespace.NAMESPACE )
@XmlAccessorType( value = XmlAccessType.NONE )
public class Document
extends BaseIdentifiableObject
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/DocumentService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/DocumentService.java 2010-12-14 11:36:39 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/DocumentService.java 2011-12-10 23:03:56 +0000
@@ -45,16 +45,24 @@
* @return the generated identifier.
*/
int saveDocument( Document document );
-
+
/**
* Retrieves the Document with the given identifier.
- *
+ *
* @param id the identifier of the Document.
* @return the Document.
*/
Document getDocument( int id );
/**
+ * Retrieves the Document with the given identifier.
+ *
+ * @param uid the identifier of the Document.
+ * @return the Document.
+ */
+ Document getDocument( String uid );
+
+ /**
* Deletes a Document.
*
* @param document the Document to delete.
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Documents.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Documents.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/document/Documents.java 2011-12-10 23:22:51 +0000
@@ -0,0 +1,67 @@
+package org.hisp.dhis.document;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.common.BaseLinkableObject;
+import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.DocumentXmlAdapter;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@XmlRootElement( name = "documents", namespace = Dxf2Namespace.NAMESPACE )
+@XmlAccessorType( value = XmlAccessType.NONE )
+public class Documents extends BaseLinkableObject
+{
+ private List<Document> documents = new ArrayList<Document>();
+
+ @XmlElement( name = "document" )
+ @XmlJavaTypeAdapter( DocumentXmlAdapter.class )
+ @JsonProperty( value = "documents" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
+ public List<Document> getDocuments()
+ {
+ return documents;
+ }
+
+ public void setDocuments( List<Document> documents )
+ {
+ this.documents = documents;
+ }
+}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/Expression.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/Expression.java 2011-11-22 14:38:08 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/expression/Expression.java 2011-12-10 22:36:01 +0000
@@ -27,9 +27,17 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.CategoryOptionComboXmlAdapter;
+import org.hisp.dhis.common.adapter.DataElementXmlAdapter;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
+import javax.xml.bind.annotation.*;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.io.Serializable;
import java.util.Set;
@@ -50,6 +58,8 @@
* @author Margrethe Store
* @version $Id: Expression.java 5011 2008-04-24 20:41:28Z larshelg $
*/
+@XmlRootElement( name = "expression", namespace = Dxf2Namespace.NAMESPACE )
+@XmlAccessorType( value = XmlAccessType.NONE )
public class Expression
implements Serializable
{
@@ -185,6 +195,33 @@
// Getters and setters
// -------------------------------------------------------------------------
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId( int id )
+ {
+ this.id = id;
+ }
+
+ @XmlElement
+ @JsonProperty
+ public String getExpression()
+ {
+ return expression;
+ }
+
+ public void setExpression( String expression )
+ {
+ this.expression = expression;
+ }
+
+ @XmlElementWrapper( name = "dataElements" )
+ @XmlElement( name = "dataElement" )
+ @XmlJavaTypeAdapter( DataElementXmlAdapter.class )
+ @JsonProperty( value = "dataElements" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
public Set<DataElement> getDataElementsInExpression()
{
return dataElementsInExpression;
@@ -195,6 +232,11 @@
this.dataElementsInExpression = dataElementsInExpression;
}
+ @XmlElementWrapper( name = "categoryOptionCombos" )
+ @XmlElement( name = "categoryOptionCombo" )
+ @XmlJavaTypeAdapter( CategoryOptionComboXmlAdapter.class )
+ @JsonProperty( value = "categoryOptionCombos" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
public Set<DataElementCategoryOptionCombo> getOptionCombosInExpression()
{
return optionCombosInExpression;
@@ -205,6 +247,8 @@
this.optionCombosInExpression = optionCombosInExpression;
}
+ @XmlElement
+ @JsonProperty
public String getDescription()
{
return description;
@@ -214,24 +258,4 @@
{
this.description = description;
}
-
- public String getExpression()
- {
- return expression;
- }
-
- public void setExpression( String expression )
- {
- this.expression = expression;
- }
-
- public int getId()
- {
- return id;
- }
-
- public void setId( int id )
- {
- this.id = id;
- }
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRule.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRule.java 2011-12-03 10:35:41 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRule.java 2011-12-10 22:36:01 +0000
@@ -27,15 +27,17 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.hisp.dhis.common.BaseIdentifiableObject;
import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.ValidationRuleGroupXmlAdapter;
import org.hisp.dhis.expression.Expression;
import org.hisp.dhis.expression.Operator;
import org.hisp.dhis.period.PeriodType;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.*;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.HashSet;
import java.util.Set;
@@ -133,6 +135,8 @@
// Set and get methods
// -------------------------------------------------------------------------
+ @XmlElement
+ @JsonProperty
public String getDescription()
{
return description;
@@ -143,11 +147,6 @@
this.description = description;
}
- public Operator getOperator()
- {
- return operator;
- }
-
public PeriodType getPeriodType()
{
return periodType;
@@ -158,11 +157,20 @@
this.periodType = periodType;
}
+ @XmlElement
+ @JsonProperty
+ public Operator getOperator()
+ {
+ return operator;
+ }
+
public void setOperator( Operator operator )
{
this.operator = operator;
}
+ @XmlElement
+ @JsonProperty
public String getType()
{
return type;
@@ -173,6 +181,8 @@
this.type = type;
}
+ @XmlElement
+ @JsonProperty
public Expression getLeftSide()
{
return leftSide;
@@ -183,6 +193,8 @@
this.leftSide = leftSide;
}
+ @XmlElement
+ @JsonProperty
public Expression getRightSide()
{
return rightSide;
@@ -193,6 +205,11 @@
this.rightSide = rightSide;
}
+ @XmlElementWrapper( name = "validationRuleGroups" )
+ @XmlElement( name = "validationRuleGroup" )
+ @XmlJavaTypeAdapter( ValidationRuleGroupXmlAdapter.class )
+ @JsonProperty( value = "validationRuleGroups" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
public Set<ValidationRuleGroup> getGroups()
{
return groups;
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroup.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroup.java 2011-12-03 10:35:41 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroup.java 2011-12-10 22:36:01 +0000
@@ -27,12 +27,14 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.hisp.dhis.common.BaseIdentifiableObject;
import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.ValidationRuleXmlAdapter;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.*;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.HashSet;
import java.util.Set;
@@ -107,6 +109,8 @@
// Getters and setters
// -------------------------------------------------------------------------
+ @XmlElement
+ @JsonProperty
public String getDescription()
{
return description;
@@ -117,6 +121,11 @@
this.description = description;
}
+ @XmlElementWrapper( name = "validationRules" )
+ @XmlElement( name = "validationRule" )
+ @XmlJavaTypeAdapter( ValidationRuleXmlAdapter.class )
+ @JsonProperty( value = "validationRules" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
public Set<ValidationRule> getMembers()
{
return members;
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroups.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroups.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleGroups.java 2011-12-10 23:22:51 +0000
@@ -0,0 +1,67 @@
+package org.hisp.dhis.validation;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.common.BaseLinkableObject;
+import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.ValidationRuleGroupXmlAdapter;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@XmlRootElement( name = "validationRuleGroups", namespace = Dxf2Namespace.NAMESPACE )
+@XmlAccessorType( value = XmlAccessType.NONE )
+public class ValidationRuleGroups extends BaseLinkableObject
+{
+ private List<ValidationRuleGroup> validationRuleGroups = new ArrayList<ValidationRuleGroup>();
+
+ @XmlElement( name = "validationRuleGroup" )
+ @XmlJavaTypeAdapter( ValidationRuleGroupXmlAdapter.class )
+ @JsonProperty( value = "validationRuleGroups" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
+ public List<ValidationRuleGroup> getValidationRuleGroups()
+ {
+ return validationRuleGroups;
+ }
+
+ public void setValidationRuleGroups( List<ValidationRuleGroup> validationRuleGroups )
+ {
+ this.validationRuleGroups = validationRuleGroups;
+ }
+}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleService.java 2011-09-10 08:40:27 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRuleService.java 2011-12-10 23:03:56 +0000
@@ -27,16 +27,16 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
import org.hisp.dhis.common.Grid;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataset.DataSet;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
/**
* @author Margrethe Store
* @version $Id: ValidationRuleService.java 5434 2008-06-18 18:57:59Z larshelg $
@@ -46,7 +46,7 @@
String ID = ValidationRuleService.class.getName();
int MAX_VIOLATIONS = 500;
-
+
// -------------------------------------------------------------------------
// ValidationRule business logic
// -------------------------------------------------------------------------
@@ -56,66 +56,66 @@
* are listed as columns and Sources are listed as rows.
*/
Grid getAggregateValidationResult( Collection<ValidationResult> results, List<Period> periods, List<OrganisationUnit> sources );
-
+
/**
* Validates AggregatedDataValues.
- *
+ *
* @param startDate the start date.
- * @param endDate the end date.
- * @param sources a collection of Sources.
- * @return a collection of ValidationResults for each validation violation.
+ * @param endDate the end date.
+ * @param sources a collection of Sources.
+ * @return a collection of ValidationResults for each validation violation.
*/
Collection<ValidationResult> validateAggregate( Date startDate, Date endDate, Collection<OrganisationUnit> sources );
/**
* Validate AggregatedDataValues.
- *
+ *
* @param startDate the start date.
- * @param endDate the end date.
- * @param sources a collection of Sources.
- * @param group a group of ValidationRules.
- * @return a collection of ValidationResults for each validation violation.
+ * @param endDate the end date.
+ * @param sources a collection of Sources.
+ * @param group a group of ValidationRules.
+ * @return a collection of ValidationResults for each validation violation.
*/
public Collection<ValidationResult> validateAggregate( Date startDate, Date endDate, Collection<OrganisationUnit> sources, ValidationRuleGroup group );
-
+
/**
* Validate DataValues.
- *
+ *
* @param startDate the start date.
- * @param endDate the end date.
- * @param sources a collection of Sources.
- * @return a collection of ValidationResults for each validation violation.
+ * @param endDate the end date.
+ * @param sources a collection of Sources.
+ * @return a collection of ValidationResults for each validation violation.
*/
Collection<ValidationResult> validate( Date startDate, Date endDate, Collection<OrganisationUnit> sources );
-
+
/**
* Validate DataValues.
- *
+ *
* @param startDate the start date.
- * @param endDate the end date.
- * @param sources a collection of Sources.
- * @param group a group of ValidationRules.
- * @return a collection of ValidationResults for each validation violation.
+ * @param endDate the end date.
+ * @param sources a collection of Sources.
+ * @param group a group of ValidationRules.
+ * @return a collection of ValidationResults for each validation violation.
*/
Collection<ValidationResult> validate( Date startDate, Date endDate, Collection<OrganisationUnit> sources, ValidationRuleGroup group );
-
+
/**
* Validate DataValues.
- *
+ *
* @param dataSet the DataSet.
- * @param period the Period.
- * @param source the Source.
- * @return a collection of ValidationResults for each validation violation.
+ * @param period the Period.
+ * @param source the Source.
+ * @return a collection of ValidationResults for each validation violation.
*/
Collection<ValidationResult> validate( DataSet dataSet, Period period, OrganisationUnit source );
/**
* Validate DataValues.
- *
+ *
* @param startDate the start date.
- * @param endDate the end date.
- * @param source the Source.
- * @return a collection of ValidationResults for each validation violation.
+ * @param endDate the end date.
+ * @param source the Source.
+ * @return a collection of ValidationResults for each validation violation.
*/
Collection<ValidationResult> validate( Date startDate, Date endDate, OrganisationUnit source );
@@ -125,15 +125,15 @@
/**
* Save a ValidationRule to the database.
- *
+ *
* @param validationRule the ValidationRule to save.
* @return the generated unique identifier for the ValidationRule.
*/
int saveValidationRule( ValidationRule validationRule );
-
+
/**
* Update a ValidationRule to the database.
- *
+ *
* @param validationRule the ValidationRule to update.
* @return the generated unique identifier for the ValidationRule.
*/
@@ -141,71 +141,79 @@
/**
* Delete a validation rule with the given identifiers from the database.
- *
+ *
* @param validationRule the ValidationRule to delete.
*/
void deleteValidationRule( ValidationRule validationRule );
-
+
/**
* Get ValidationRule with the given identifier.
- *
+ *
* @param id the unique identifier of the ValidationRule.
* @return the ValidationRule or null if it doesn't exist.
*/
ValidationRule getValidationRule( int id );
/**
+ * Get ValidationRule with the given uid.
+ *
+ * @param uid the unique identifier of the ValidationRule.
+ * @return the ValidationRule or null if it doesn't exist.
+ */
+ ValidationRule getValidationRule( String uid );
+
+ /**
* Get the ValidationRules with the corresponding identifiers.
- *
+ *
* @param identifiers the collection of identifiers.
* @return a collection of validation rules.
*/
Collection<ValidationRule> getValidationRules( Collection<Integer> identifiers );
-
+
/**
* Get all validation rules.
- *
+ *
* @return a Collection of ValidationRule or null if it there are no validation rules.
- */
+ */
Collection<ValidationRule> getAllValidationRules();
/**
* Get a validation rule with the given name.
- *
+ *
* @param name the name of the validation rule.
*/
ValidationRule getValidationRuleByName( String name );
-
+
/**
* Get the validation rules which are associated with the given name key.
- *
+ *
* @param name the name key.
* @return a collection of validation rules.
*/
Collection<ValidationRule> getValidationRulesByName( String name );
-
+
/**
* Get the validation rules which are associated with the given data elements.
- *
+ *
* @param dataElements the collection of data elements.
* @return a collection of validation rules.
*/
Collection<ValidationRule> getValidationRulesByDataElements( Collection<DataElement> dataElements );
-
+
/**
* Get all data elements associated with any validation rule.
- *
+ *
* @return a collection of data elements.
*/
Collection<DataElement> getDataElementsInValidationRules();
-
+
// -------------------------------------------------------------------------
// ValidationRuleGroup
// -------------------------------------------------------------------------
/**
* Adds a ValidationRuleGroup to the database.
- *
+ *
* @param validationRuleGroup the ValidationRuleGroup to add.
* @return the generated unique identifier for the ValidationRuleGroup.
*/
@@ -213,54 +221,62 @@
/**
* Delete a ValidationRuleGroup with the given identifiers from the database.
- *
- * @param id the ValidationRuleGroup to delete.
+ *
+ * @param validationRuleGroup the ValidationRuleGroup to delete.
*/
void deleteValidationRuleGroup( ValidationRuleGroup validationRuleGroup );
/**
* Update a ValidationRuleGroup with the given identifiers.
- *
- * @param validationRule the ValidationRule to update.
+ *
+ * @param validationRuleGroup the ValidationRule to update.
*/
void updateValidationRuleGroup( ValidationRuleGroup validationRuleGroup );
/**
* Get ValidationRuleGroup with the given identifier.
- *
+ *
* @param id the unique identifier of the ValidationRuleGroup.
- * @return the ValidationRule or null if it doesn't exist.
+ * @return the ValidationRuleGroup or null if it doesn't exist.
*/
ValidationRuleGroup getValidationRuleGroup( int id );
/**
+ * Get ValidationRuleGroup with the given uid.
+ *
+ * @param uid the unique identifier of the ValidationRuleGroup.
+ * @return the ValidationRuleGroup or null if it doesn't exist.
+ */
+ ValidationRuleGroup getValidationRuleGroup( String uid );
+
+ /**
* Get all ValidationRuleGroups.
- *
+ *
* @return a Collection of ValidationRuleGroup or null if it there are no ValidationRuleGroups.
- */
+ */
Collection<ValidationRuleGroup> getAllValidationRuleGroups();
-
+
/**
* Get a ValidationRuleGroup with the given name.
- *
+ *
* @param name the name of the ValidationRuleGroup.
*/
- ValidationRuleGroup getValidationRuleGroupByName( String name );
-
+ ValidationRuleGroup getValidationRuleGroupByName( String name );
+
Collection<ValidationRule> getValidationRulesBetween( int first, int max );
-
+
Collection<ValidationRule> getValidationRulesBetweenByName( String name, int first, int max );
-
+
int getValidationRuleCount();
-
+
int getValidationRuleCountByName( String name );
-
+
Collection<ValidationRuleGroup> getValidationRuleGroupsBetween( int first, int max );
-
+
Collection<ValidationRuleGroup> getValidationRuleGroupsBetweenByName( String name, int first, int max );
-
+
int getValidationRuleGroupCount();
-
+
int getValidationRuleGroupCountByName( String name );
}
=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRules.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRules.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/validation/ValidationRules.java 2011-12-10 23:22:51 +0000
@@ -0,0 +1,67 @@
+package org.hisp.dhis.validation;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.hisp.dhis.common.BaseIdentifiableObject;
+import org.hisp.dhis.common.BaseLinkableObject;
+import org.hisp.dhis.common.Dxf2Namespace;
+import org.hisp.dhis.common.adapter.ValidationRuleXmlAdapter;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@XmlRootElement( name = "validationRules", namespace = Dxf2Namespace.NAMESPACE )
+@XmlAccessorType( value = XmlAccessType.NONE )
+public class ValidationRules extends BaseLinkableObject
+{
+ private List<ValidationRule> validationRules = new ArrayList<ValidationRule>();
+
+ @XmlElement( name = "validationRule" )
+ @XmlJavaTypeAdapter( ValidationRuleXmlAdapter.class )
+ @JsonProperty( value = "validationRules" )
+ @JsonSerialize( contentAs = BaseIdentifiableObject.class )
+ public List<ValidationRule> getValidationRules()
+ {
+ return validationRules;
+ }
+
+ public void setValidationRules( List<ValidationRule> validationRules )
+ {
+ this.validationRules = validationRules;
+ }
+}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java 2011-12-05 12:21:38 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/common/IdentityPopulator.java 2011-12-10 23:03:56 +0000
@@ -50,7 +50,7 @@
private static final Log log = LogFactory.getLog( IdentityPopulator.class );
private static String[] tables = { "chart", "constant", "attribute", "indicatortype", "indicatorgroupset", "indicator",
- "indicatorgroup", "datadictionary", "validationrulegroup", "validationrule", "dataset", "orgunitlevel",
+ "indicatorgroup", "datadictionary", "validationrulegroup", "validationrule", "dataset", "orgunitlevel", "document",
"organisationunit", "orgunitgroup", "orgunitgroupset", "dataelementcategoryoption", "dataelementgroup",
"dataelement", "dataelementgroupset", "dataelementcategory", "categorycombo", "categoryoptioncombo", "mapview" };
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java 2011-12-09 19:44:38 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/validation/DefaultValidationRuleService.java 2011-12-10 23:03:56 +0000
@@ -395,6 +395,11 @@
return validationRuleStore.get( id );
}
+ public ValidationRule getValidationRule( String uid )
+ {
+ return validationRuleStore.getByUid( uid );
+ }
+
public ValidationRule getValidationRuleByName( String name )
{
return validationRuleStore.getByName( name );
@@ -452,6 +457,11 @@
return validationRuleGroupStore.get( id );
}
+ public ValidationRuleGroup getValidationRuleGroup( String uid )
+ {
+ return validationRuleGroupStore.getByUid( uid );
+ }
+
public Collection<ValidationRuleGroup> getAllValidationRuleGroups()
{
return validationRuleGroupStore.getAll();
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/document/impl/DefaultDocumentService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/document/impl/DefaultDocumentService.java 2010-12-13 15:18:59 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/document/impl/DefaultDocumentService.java 2011-12-10 23:03:56 +0000
@@ -27,13 +27,13 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.util.Collection;
-
import org.hisp.dhis.common.GenericIdentifiableObjectStore;
import org.hisp.dhis.document.Document;
import org.hisp.dhis.document.DocumentService;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Collection;
+
/**
* @author Lars Helge Overland
* @version $Id$
@@ -67,11 +67,16 @@
return documentStore.get( id );
}
+ public Document getDocument( String uid )
+ {
+ return documentStore.getByUid( uid );
+ }
+
public void deleteDocument( Document document )
{
documentStore.delete( document );
}
-
+
public Collection<Document> getAllDocuments()
{
return documentStore.getAll();
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/document/hibernate/Document.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/document/hibernate/Document.hbm.xml 2011-05-28 21:25:46 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/document/hibernate/Document.hbm.xml 2011-12-10 23:03:56 +0000
@@ -1,7 +1,9 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"
+ [<!ENTITY identifiableProperties SYSTEM "classpath://org/hisp/dhis/common/identifiableProperties.hbm">]
+ >
<hibernate-mapping>
<class name="org.hisp.dhis.document.Document" table="document">
@@ -11,8 +13,7 @@
<id name="id" column="documentid">
<generator class="native" />
</id>
-
- <property name="name" not-null="true" unique="true" length="160" />
+ &identifiableProperties;
<property name="url" not-null="true" type="text" />
=== added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/DocumentController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/DocumentController.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/DocumentController.java 2011-12-10 23:03:56 +0000
@@ -0,0 +1,145 @@
+package org.hisp.dhis.api.controller;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.api.utils.IdentifiableObjectParams;
+import org.hisp.dhis.api.utils.WebLinkPopulator;
+import org.hisp.dhis.document.Document;
+import org.hisp.dhis.document.DocumentService;
+import org.hisp.dhis.document.Documents;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.util.ArrayList;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Controller
+@RequestMapping( value = DocumentController.RESOURCE_PATH )
+public class DocumentController
+{
+ public static final String RESOURCE_PATH = "/documents";
+
+ @Autowired
+ private DocumentService documentService;
+
+ //-------------------------------------------------------------------------------------------------------
+ // GET
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.GET )
+ public String getDocuments( IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ Documents documents = new Documents();
+ documents.setDocuments( new ArrayList<Document>( documentService.getAllDocuments() ) );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( documents );
+ }
+
+ model.addAttribute( "model", documents );
+
+ return "documents";
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.GET )
+ public String getDocument( @PathVariable( "uid" ) String uid, IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ Document document = documentService.getDocument( uid );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( document );
+ }
+
+ model.addAttribute( "model", document );
+
+ return "validationRule";
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // POST
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postDocumentXML( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postDocumentJSON( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // PUT
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putDocumentXML( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putDocumentJSON( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.PUT.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // DELETE
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.DELETE )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void deleteDocument( @PathVariable( "uid" ) String uid ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+}
=== added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleController.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleController.java 2011-12-10 23:22:51 +0000
@@ -0,0 +1,145 @@
+package org.hisp.dhis.api.controller;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.api.utils.IdentifiableObjectParams;
+import org.hisp.dhis.api.utils.WebLinkPopulator;
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleService;
+import org.hisp.dhis.validation.ValidationRules;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.util.ArrayList;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Controller
+@RequestMapping( value = ValidationRuleController.RESOURCE_PATH )
+public class ValidationRuleController
+{
+ public static final String RESOURCE_PATH = "/validationRules";
+
+ @Autowired
+ private ValidationRuleService validationRuleService;
+
+ //-------------------------------------------------------------------------------------------------------
+ // GET
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.GET )
+ public String getValidationRules( IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ ValidationRules validationRules = new ValidationRules();
+ validationRules.setValidationRules( new ArrayList<ValidationRule>( validationRuleService.getAllValidationRules() ) );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( validationRules );
+ }
+
+ model.addAttribute( "model", validationRules );
+
+ return "validationRules";
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.GET )
+ public String getValidationRule( @PathVariable( "uid" ) String uid, IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ ValidationRule validationRule = validationRuleService.getValidationRule( uid );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( validationRule );
+ }
+
+ model.addAttribute( "model", validationRule );
+
+ return "validationRule";
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // POST
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postValidationRuleXML( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postValidationRuleJSON( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // PUT
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putValidationRuleXML( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putValidationRuleJSON( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.PUT.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // DELETE
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.DELETE )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void deleteValidationRule( @PathVariable( "uid" ) String uid ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+}
=== added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleGroupController.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleGroupController.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/ValidationRuleGroupController.java 2011-12-10 23:03:56 +0000
@@ -0,0 +1,145 @@
+package org.hisp.dhis.api.controller;
+
+/*
+ * Copyright (c) 2004-2011, 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 org.hisp.dhis.api.utils.IdentifiableObjectParams;
+import org.hisp.dhis.api.utils.WebLinkPopulator;
+import org.hisp.dhis.validation.ValidationRuleGroup;
+import org.hisp.dhis.validation.ValidationRuleGroups;
+import org.hisp.dhis.validation.ValidationRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.util.ArrayList;
+
+/**
+ * @author Morten Olav Hansen <mortenoh@xxxxxxxxx>
+ */
+@Controller
+@RequestMapping( value = ValidationRuleGroupController.RESOURCE_PATH )
+public class ValidationRuleGroupController
+{
+ public static final String RESOURCE_PATH = "/validationRuleGroups";
+
+ @Autowired
+ private ValidationRuleService validationRuleService;
+
+ //-------------------------------------------------------------------------------------------------------
+ // GET
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.GET )
+ public String getValidationRuleGroups( IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ ValidationRuleGroups validationRuleGroups = new ValidationRuleGroups();
+ validationRuleGroups.setValidationRuleGroups( new ArrayList<ValidationRuleGroup>( validationRuleService.getAllValidationRuleGroups() ) );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( validationRuleGroups );
+ }
+
+ model.addAttribute( "model", validationRuleGroups );
+
+ return "validationRuleGroups";
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.GET )
+ public String getValidationRuleGroup( @PathVariable( "uid" ) String uid, IdentifiableObjectParams params, Model model, HttpServletRequest request )
+ {
+ ValidationRuleGroup validationRuleGroup = validationRuleService.getValidationRuleGroup( uid );
+
+ if ( params.hasLinks() )
+ {
+ WebLinkPopulator listener = new WebLinkPopulator( request );
+ listener.addLinks( validationRuleGroup );
+ }
+
+ model.addAttribute( "model", validationRuleGroup );
+
+ return "validationRuleGroup";
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // POST
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postValidationRuleGroupXML( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ @RequestMapping( method = RequestMethod.POST, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.CREATED )
+ public void postValidationRuleGroupJSON( HttpServletResponse response, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.POST.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // PUT
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/xml, text/xml"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putValidationRuleGroupXML( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.PUT, headers = {"Content-Type=application/json"} )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void putValidationRuleGroupJSON( @PathVariable( "uid" ) String uid, InputStream input ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.PUT.toString() );
+ }
+
+ //-------------------------------------------------------------------------------------------------------
+ // DELETE
+ //-------------------------------------------------------------------------------------------------------
+
+ @RequestMapping( value = "/{uid}", method = RequestMethod.DELETE )
+ @ResponseStatus( value = HttpStatus.NO_CONTENT )
+ public void deleteValidationGroupRule( @PathVariable( "uid" ) String uid ) throws Exception
+ {
+ throw new HttpRequestMethodNotSupportedException( RequestMethod.DELETE.toString() );
+ }
+}
=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java'
--- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java 2011-12-09 18:08:05 +0000
+++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java 2011-12-10 23:22:51 +0000
@@ -41,10 +41,16 @@
import org.hisp.dhis.dataelement.*;
import org.hisp.dhis.dataset.DataSet;
import org.hisp.dhis.dataset.DataSets;
+import org.hisp.dhis.document.Document;
+import org.hisp.dhis.document.Documents;
import org.hisp.dhis.indicator.*;
import org.hisp.dhis.mapping.MapView;
import org.hisp.dhis.mapping.Maps;
import org.hisp.dhis.organisationunit.*;
+import org.hisp.dhis.validation.ValidationRule;
+import org.hisp.dhis.validation.ValidationRuleGroup;
+import org.hisp.dhis.validation.ValidationRuleGroups;
+import org.hisp.dhis.validation.ValidationRules;
import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
@@ -239,7 +245,99 @@
{
populateMap( (MapView) source, true );
}
-
+ else if ( source instanceof Documents )
+ {
+ populateDocuments( (Documents) source, true );
+ }
+ else if ( source instanceof Document )
+ {
+ populateDocument( (Document) source, true );
+ }
+ else if ( source instanceof ValidationRules )
+ {
+ populateValidationRules( (ValidationRules) source, true );
+ }
+ else if ( source instanceof ValidationRule )
+ {
+ populateValidationRule( (ValidationRule) source, true );
+ }
+ else if ( source instanceof ValidationRuleGroups )
+ {
+ populateValidationRuleGroups( (ValidationRuleGroups) source, true );
+ }
+ else if ( source instanceof ValidationRuleGroup )
+ {
+ populateValidationRuleGroup( (ValidationRuleGroup) source, true );
+ }
+ }
+
+ private void populateDocuments( Documents documents, boolean root )
+ {
+ documents.setLink( getBasePath( documents.getClass() ) );
+
+ if ( root )
+ {
+ for ( Document document : documents.getDocuments() )
+ {
+ populateDocument( document, false );
+ }
+ }
+ }
+
+ private void populateDocument( Document document, boolean root )
+ {
+ populateIdentifiableObject( document );
+
+ if ( root )
+ {
+
+ }
+ }
+
+ private void populateValidationRules( ValidationRules validationRules, boolean root )
+ {
+ validationRules.setLink( getBasePath( validationRules.getClass() ) );
+
+ if ( root )
+ {
+ for ( ValidationRule validationRule : validationRules.getValidationRules() )
+ {
+ populateValidationRule( validationRule, false );
+ }
+ }
+ }
+
+ private void populateValidationRule( ValidationRule validationRule, boolean root )
+ {
+ populateIdentifiableObject( validationRule );
+
+ if ( root )
+ {
+ handleIdentifiableObjectCollection( validationRule.getGroups() );
+ }
+ }
+
+ private void populateValidationRuleGroups( ValidationRuleGroups validationRuleGroups, boolean root )
+ {
+ validationRuleGroups.setLink( getBasePath( validationRuleGroups.getClass() ) );
+
+ if ( root )
+ {
+ for ( ValidationRuleGroup validationRuleGroup : validationRuleGroups.getValidationRuleGroups() )
+ {
+ populateValidationRuleGroup( validationRuleGroup, false );
+ }
+ }
+ }
+
+ private void populateValidationRuleGroup( ValidationRuleGroup validationRuleGroup, boolean root )
+ {
+ populateIdentifiableObject( validationRuleGroup );
+
+ if ( root )
+ {
+ handleIdentifiableObjectCollection( validationRuleGroup.getMembers() );
+ }
}
private void populateIndicatorTypes( IndicatorTypes indicatorTypes, boolean root )