Skip to content

Commit

Permalink
#3 added property-files
Browse files Browse the repository at this point in the history
replaced EJB-singleton annotations with stateless
  • Loading branch information
Martin Wahnschaffe committed Jun 29, 2016
1 parent edecacf commit 1d80e45
Show file tree
Hide file tree
Showing 30 changed files with 461 additions and 135 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import javax.naming.NamingException;

import de.symeda.sormas.api.caze.CaseFacade;
import de.symeda.sormas.api.facility.FacilityFacade;
import de.symeda.sormas.api.person.PersonFacade;
import de.symeda.sormas.api.user.UserFacade;

public class FacadeProvider {

Expand Down Expand Up @@ -36,7 +38,15 @@ public static CaseFacade getCaseFacade() {
public static PersonFacade getPersonFacade() {
return get().lookupEjbRemote(PersonFacade.class);
}


public static FacilityFacade getFacilityFacade() {
return get().lookupEjbRemote(FacilityFacade.class);
}

public static UserFacade getUserFacade() {
return get().lookupEjbRemote(UserFacade.class);
}

@SuppressWarnings("unchecked")
public <P> P lookupEjbRemote(Class<P> clazz) {
try {
Expand Down
25 changes: 25 additions & 0 deletions sormas-api/src/main/java/de/symeda/sormas/api/ReferenceDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package de.symeda.sormas.api;

import de.symeda.sormas.api.DataTransferObject;

public class ReferenceDto extends DataTransferObject {

private static final long serialVersionUID = 4500877980734738141L;

public static final String CAPTION = "caption";

private String caption;

@Override
public String toString() {
return getCaption();
}

public String getCaption() {
return caption;
}

public void setCaption(String caption) {
this.caption = caption;
}
}
59 changes: 42 additions & 17 deletions sormas-api/src/main/java/de/symeda/sormas/api/caze/CaseDataDto.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
package de.symeda.sormas.api.caze;

import java.util.Date;

import de.symeda.sormas.api.DataTransferObject;
import de.symeda.sormas.api.Disease;
import de.symeda.sormas.api.person.PersonDto;
import de.symeda.sormas.api.ReferenceDto;
import de.symeda.sormas.api.person.CasePersonDto;

public class CaseDataDto extends DataTransferObject {

private static final long serialVersionUID = 5007131477733638086L;

public static final String I18N_PREFIX = "CaseData";

public static final String CASE_STATUS = "caseStatus";
public static final String DESCRIPTION = "description";
public static final String PERSON = "personDto";
public static final String PERSON = "person";
public static final String DISEASE = "disease";
public static final String HEALTH_FACILITY = "healthFacility";
public static final String REPORTER = "reporter";
public static final String REPORT_DATE = "reportDate";

private CasePersonDto person;
private CaseStatus caseStatus;
private String description;
private PersonDto personDto;
private Disease disease;
private ReferenceDto healthFacility;
private ReferenceDto reporter;
private Date reportDate;

public CaseStatus getCaseStatus() {
return caseStatus;
Expand All @@ -26,20 +35,12 @@ public void setCaseStatus(CaseStatus caseStatus) {
this.caseStatus = caseStatus;
}

public String getDescription() {
return description;
public CasePersonDto getPerson() {
return person;
}

public void setDescription(String description) {
this.description = description;
}

public PersonDto getPerson() {
return personDto;
}

public void setPersonDto(PersonDto personDto) {
this.personDto = personDto;
public void setPerson(CasePersonDto personDto) {
this.person = personDto;
}

public Disease getDisease() {
Expand All @@ -49,4 +50,28 @@ public Disease getDisease() {
public void setDisease(Disease disease) {
this.disease = disease;
}

public ReferenceDto getReporter() {
return reporter;
}

public void setReporter(ReferenceDto reporter) {
this.reporter = reporter;
}

public ReferenceDto getHealthFacility() {
return healthFacility;
}

public void setHealthFacility(ReferenceDto healthFacility) {
this.healthFacility = healthFacility;
}

public Date getReportDate() {
return reportDate;
}

public void setReportDate(Date reportDate) {
this.reportDate = reportDate;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package de.symeda.sormas.api.facility;

import java.util.List;

import javax.ejb.Remote;

import de.symeda.sormas.api.ReferenceDto;

@Remote
public interface FacilityFacade {

public abstract List<ReferenceDto> getAllAsReference();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

import de.symeda.sormas.api.DataTransferObject;

public class PersonDto extends DataTransferObject {
public class CasePersonDto extends DataTransferObject {

private static final long serialVersionUID = -8558187171374254398L;

public static final String I18N_PREFIX = "CasePerson";

public static final String FIRST_NAME = "firstName";
public static final String LAST_NAME = "lastName";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
@Remote
public interface PersonFacade {

public abstract List<PersonDto> getAllPerson();
public abstract List<CasePersonDto> getAllPerson();

public abstract PersonDto getByUuid(String uuid);
public abstract CasePersonDto getByUuid(String uuid);

public abstract PersonDto savePerson(PersonDto dto);
public abstract CasePersonDto savePerson(CasePersonDto dto);
}
13 changes: 13 additions & 0 deletions sormas-api/src/main/java/de/symeda/sormas/api/user/UserFacade.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package de.symeda.sormas.api.user;

import java.util.List;

import javax.ejb.Remote;

import de.symeda.sormas.api.ReferenceDto;

@Remote
public interface UserFacade {

public abstract List<ReferenceDto> getAllAsReference();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import de.symeda.sormas.api.Disease;
import de.symeda.sormas.api.caze.CaseStatus;
import de.symeda.sormas.backend.common.AbstractDomainObject;
import de.symeda.sormas.backend.facility.Facility;
import de.symeda.sormas.backend.location.Location;
import de.symeda.sormas.backend.person.Person;
import de.symeda.sormas.backend.user.User;
Expand All @@ -31,6 +32,7 @@ public class Case extends AbstractDomainObject {
private String description;
private Disease disease;
private CaseStatus caseStatus;
private Facility healthFacility;

private User reporter;
private Date reportDate;
Expand Down Expand Up @@ -176,4 +178,12 @@ public void setSurveillanceSupervisor(User surveillanceSupervisor) {
this.surveillanceSupervisor = surveillanceSupervisor;
}

@ManyToOne(cascade = {})
public Facility getHealthFacility() {
return healthFacility;
}
public void setHealthFacility(Facility healthFacility) {
this.healthFacility = healthFacility;
}

}
Original file line number Diff line number Diff line change
@@ -1,84 +1,98 @@
package de.symeda.sormas.backend.caze;

import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Stateless;
import javax.validation.constraints.NotNull;

import de.symeda.sormas.api.caze.CaseDataDto;
import de.symeda.sormas.api.caze.CaseFacade;
import de.symeda.sormas.backend.facility.Facility;
import de.symeda.sormas.backend.facility.FacilityService;
import de.symeda.sormas.backend.person.Person;
import de.symeda.sormas.backend.person.PersonFacadeEjb;
import de.symeda.sormas.backend.person.PersonService;
import de.symeda.sormas.backend.util.DtoHelper;

@Singleton(name = "CaseFacade")
@Stateless(name = "CaseFacade")
public class CaseFacadeEjb implements CaseFacade {

@EJB
private CaseService cs;
private CaseService caseService;
@EJB
private PersonService ps;
private PersonService personService;
@EJB
private FacilityService facilityService;


@Override
public List<CaseDataDto> getAllCases() {
return cs.getAll().stream()
return caseService.getAll().stream()
.map(c -> toCaseDataDto(c))
.collect(Collectors.toList());
}

@Override
public CaseDataDto getCaseDataByUuid(String uuid) {
return Optional.of(uuid)
.map(u -> cs.getByUuid(u))
.map(c -> toCaseDataDto(c))
.orElse(null);
return toCaseDataDto(caseService.getByUuid(uuid));
}

@Override
public CaseDataDto saveCase(CaseDataDto dto) {
Case caze = fromCaseDataDto(dto);
cs.ensurePersisted(caze);
caseService.ensurePersisted(caze);

return toCaseDataDto(caze);

}

@Override
public CaseDataDto createCase(String personUuid, CaseDataDto caseDto) {
Person person = ps.getByUuid(personUuid);
Person person = personService.getByUuid(personUuid);

Case caze = fromCaseDataDto(caseDto);
caze.setPerson(person);
cs.ensurePersisted(caze);
caseService.ensurePersisted(caze);

return toCaseDataDto(caze);

}


public Case fromCaseDataDto(@NotNull CaseDataDto dto) {
boolean createCase = dto.getChangeDate() == null;
Case caze = createCase ? new Case() : cs.getByUuid(dto.getUuid());

Case caze;
if (dto.getChangeDate() == null) {
caze = new Case();
} else {
caze = caseService.getByUuid(dto.getUuid());
}

caze.setUuid(dto.getUuid());
caze.setDisease(dto.getDisease());
caze.setDescription(dto.getDescription());
caze.setCaseStatus(dto.getCaseStatus());
if (dto.getHealthFacility() != null) {
Facility facility = facilityService.getByUuid(dto.getHealthFacility().getUuid());
caze.setHealthFacility(facility);
} else {
caze.setHealthFacility(null);
}
return caze;
}

public static CaseDataDto toCaseDataDto(Case caze) {
if (caze == null) {
return null;
}
CaseDataDto dto = new CaseDataDto();
dto.setChangeDate(caze.getChangeDate());
dto.setUuid(caze.getUuid());
dto.setDisease(caze.getDisease());
dto.setCaseStatus(caze.getCaseStatus());
dto.setDescription(caze.getDescription());

dto.setPersonDto(PersonFacadeEjb.toDto(caze.getPerson()));
dto.setPerson(PersonFacadeEjb.toDto(caze.getPerson()));
dto.setHealthFacility(DtoHelper.toReferenceDto(caze.getHealthFacility()));
dto.setReporter(DtoHelper.toReferenceDto(caze.getReporter()));

return dto;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
import de.symeda.sormas.backend.common.AbstractAdoService;
import de.symeda.sormas.backend.person.Person;



@Stateless
@LocalBean
public class CaseService extends AbstractAdoService<Case> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,6 @@ public void delete(ADO deleteme) {
em.flush();
}

@Override
public ADO merge(ADO mergeme) {
return em.merge(mergeme);
}

@Override
public void doFlush() {
em.flush();
Expand Down

0 comments on commit 1d80e45

Please sign in to comment.