=== added file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/TrackedEntityFormSchemaDescriptor.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/TrackedEntityFormSchemaDescriptor.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/schema/descriptors/TrackedEntityFormSchemaDescriptor.java 2014-10-02 08:57:44 +0000 @@ -0,0 +1,65 @@ +package org.hisp.dhis.schema.descriptors; + +/* + * Copyright (c) 2004-2014, 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.google.common.collect.Lists; +import org.hisp.dhis.schema.Authority; +import org.hisp.dhis.schema.AuthorityType; +import org.hisp.dhis.schema.Schema; +import org.hisp.dhis.schema.SchemaDescriptor; +import org.hisp.dhis.trackedentity.TrackedEntityForm; +import org.springframework.stereotype.Component; + +/** + * @author Morten Olav Hansen + */ +@Component +public class TrackedEntityFormSchemaDescriptor implements SchemaDescriptor +{ + public static final String SINGULAR = "trackedEntityForm"; + + public static final String PLURAL = "trackedEntityForms"; + + public static final String API_ENDPOINT = "/" + PLURAL; + + @Override + public Schema getSchema() + { + Schema schema = new Schema( TrackedEntityForm.class, SINGULAR, PLURAL ); + schema.setApiEndpoint( API_ENDPOINT ); + schema.setOrder( 1490 ); + schema.setMetadata( false ); + + schema.getAuthorities().add( new Authority( AuthorityType.CREATE, Lists.newArrayList( "F_ADD_TRACKED_ENTITY_FORM" ) ) ); + schema.getAuthorities().add( new Authority( AuthorityType.UPDATE, Lists.newArrayList( "F_ADD_TRACKED_ENTITY_FORM" ) ) ); + schema.getAuthorities().add( new Authority( AuthorityType.DELETE, Lists.newArrayList( "F_ADD_TRACKED_ENTITY_FORM" ) ) ); + + return schema; + } +} === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityForm.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityForm.java 2014-03-18 08:10:10 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityForm.java 2014-10-02 08:57:44 +0000 @@ -28,18 +28,29 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonView; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; import org.hisp.dhis.common.BaseIdentifiableObject; +import org.hisp.dhis.common.DxfNamespaces; +import org.hisp.dhis.common.view.DetailedView; +import org.hisp.dhis.common.view.ExportView; import org.hisp.dhis.dataentryform.DataEntryForm; import org.hisp.dhis.program.Program; +import java.util.Objects; + /** * @author Chau Thu Tran */ +@JacksonXmlRootElement( localName = "trackedEntityForm", namespace = DxfNamespaces.DXF_2_0 ) public class TrackedEntityForm extends BaseIdentifiableObject { private static final long serialVersionUID = -6000530171659755186L; - + private Program program; private DataEntryForm dataEntryForm; @@ -63,12 +74,14 @@ this.dataEntryForm = dataEntryForm; } - // TODO implement hashCode and equals - // ------------------------------------------------------------------------- // Getters && Setters // ------------------------------------------------------------------------- + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JsonSerialize( as = BaseIdentifiableObject.class ) + @JacksonXmlProperty( localName = "program", namespace = DxfNamespaces.DXF_2_0 ) public Program getProgram() { return program; @@ -79,6 +92,9 @@ this.program = program; } + @JsonProperty + @JsonView( { DetailedView.class, ExportView.class } ) + @JacksonXmlProperty( localName = "dataEntryForm", namespace = DxfNamespaces.DXF_2_0 ) public DataEntryForm getDataEntryForm() { return dataEntryForm; @@ -89,4 +105,30 @@ this.dataEntryForm = dataEntryForm; } + @Override + public int hashCode() + { + return 31 * super.hashCode() + Objects.hash( program, dataEntryForm ); + } + + @Override + public boolean equals( Object obj ) + { + if ( this == obj ) + { + return true; + } + if ( obj == null || getClass() != obj.getClass() ) + { + return false; + } + if ( !super.equals( obj ) ) + { + return false; + } + + final TrackedEntityForm other = (TrackedEntityForm) obj; + + return Objects.equals( this.program, other.program ) && Objects.equals( this.dataEntryForm, other.dataEntryForm ); + } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityFormStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityFormStore.java 2014-05-16 07:52:42 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/trackedentity/TrackedEntityFormStore.java 2014-10-02 08:57:44 +0000 @@ -28,31 +28,28 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import org.hisp.dhis.common.GenericStore; +import org.hisp.dhis.common.GenericIdentifiableObjectStore; import org.hisp.dhis.program.Program; /** * @author Chau Thu Tran - * - * @version TrackedEntityFormStore.java 9:41:14 AM Jan 31, 2013 $ */ public interface TrackedEntityFormStore - extends GenericStore + extends GenericIdentifiableObjectStore { String ID = TrackedEntityFormStore.class.getName(); /** * Get tracked entity form of a program - * + * * @param program Program - * * @return TrackedEntityForm */ TrackedEntityForm get( Program program ); /** * Get tracked entity form which doesn't belong to any program - * + * * @return TrackedEntityForm */ TrackedEntityForm getFormsWithoutProgram(); === modified file 'dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityFormStore.java' --- dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityFormStore.java 2014-05-16 07:52:42 +0000 +++ dhis-2/dhis-services/dhis-service-tracker/src/main/java/org/hisp/dhis/trackedentity/hibernate/HibernateTrackedEntityFormStore.java 2014-10-02 08:57:44 +0000 @@ -29,7 +29,7 @@ */ import org.hibernate.criterion.Restrictions; -import org.hisp.dhis.hibernate.HibernateGenericStore; +import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore; import org.hisp.dhis.program.Program; import org.hisp.dhis.trackedentity.TrackedEntityForm; import org.hisp.dhis.trackedentity.TrackedEntityFormStore; @@ -38,7 +38,7 @@ * @author Chau Thu Tran */ public class HibernateTrackedEntityFormStore - extends HibernateGenericStore + extends HibernateIdentifiableObjectStore implements TrackedEntityFormStore { @Override === added file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityFormController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityFormController.java 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/event/TrackedEntityFormController.java 2014-10-02 08:57:44 +0000 @@ -0,0 +1,45 @@ +package org.hisp.dhis.webapi.controller.event; + +/* + * Copyright (c) 2004-2014, 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.schema.descriptors.TrackedEntityFormSchemaDescriptor; +import org.hisp.dhis.trackedentity.TrackedEntityForm; +import org.hisp.dhis.webapi.controller.AbstractCrudController; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * @author Morten Olav Hansen + */ +@Controller +@RequestMapping( value = TrackedEntityFormSchemaDescriptor.API_ENDPOINT ) +public class TrackedEntityFormController + extends AbstractCrudController +{ +}