Skip to content

Commit

Permalink
#2 - Zwischenstand: Umbau von Tabsheet auf Views
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanSzczesny committed Jun 23, 2016
1 parent 483e174 commit b8da5dd
Show file tree
Hide file tree
Showing 37 changed files with 916 additions and 512 deletions.
13 changes: 13 additions & 0 deletions sormas-api/src/de/symeda/sormas/api/DataTransferObject.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
package de.symeda.sormas.api;

import java.io.Serializable;
import java.sql.Timestamp;

public abstract class DataTransferObject implements Serializable {

private static final long serialVersionUID = -1L;

public static final String UUID = "uuid";

private Timestamp changeDate;
private String uuid;

public Timestamp getChangeDate() {
return changeDate;
}

public void setChangeDate(Timestamp changeDate) {
this.changeDate = changeDate;
}

public String getUuid() {
return uuid;
}

public void setUuid(String uuid) {
this.uuid = uuid;
}

}
5 changes: 5 additions & 0 deletions sormas-api/src/de/symeda/sormas/api/FacadeProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import javax.naming.NamingException;

import de.symeda.sormas.api.caze.CaseFacade;
import de.symeda.sormas.api.person.PersonFacade;

public class FacadeProvider {

Expand Down Expand Up @@ -32,6 +33,10 @@ public static CaseFacade getCaseFacade() {
return get().lookupEjbRemote(CaseFacade.class);
}

public static PersonFacade getPersonFacade() {
return get().lookupEjbRemote(PersonFacade.class);
}

@SuppressWarnings("unchecked")
public <P> P lookupEjbRemote(Class<P> clazz) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import de.symeda.sormas.api.Disease;
import de.symeda.sormas.api.person.PersonDto;

public class CaseDto extends DataTransferObject {
public class CaseDataDto extends DataTransferObject {

private static final long serialVersionUID = 5007131477733638086L;

Expand Down
10 changes: 5 additions & 5 deletions sormas-api/src/de/symeda/sormas/api/caze/CaseFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
@Remote
public interface CaseFacade {

public abstract List<CaseDto> getAllCases();
public abstract List<CaseDataDto> getAllCases();

public abstract CaseDto getByUuid(String uuid);
public abstract CaseDataDto getCaseDataByUuid(String uuid);

public abstract CaseDataDto saveCase(CaseDataDto dto);

public abstract CaseDto saveCase(CaseDto dto);

public abstract void createDemo();
public abstract CaseDataDto createCase(String personUuid, CaseDataDto caseDto);

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

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

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

import de.symeda.sormas.api.caze.CaseDto;
import de.symeda.sormas.api.caze.CaseDataDto;
import de.symeda.sormas.api.caze.CaseFacade;
import de.symeda.sormas.api.person.PersonDto;
import de.symeda.sormas.api.person.PersonFacade;
import de.symeda.sormas.backend.mock.MockDataGenerator;
import de.symeda.sormas.backend.person.Person;
import de.symeda.sormas.backend.person.PersonFacadeEjb;
import de.symeda.sormas.backend.person.PersonService;

Expand All @@ -23,58 +23,59 @@ public class CaseFacadeEjb implements CaseFacade {
@EJB
private PersonService ps;

@EJB
private PersonFacade pf;

private List<CaseDto> cases;

@Override
public List<CaseDto> getAllCases() {
List<Case> casesDB = cs.getAll();
cases = new ArrayList<>();
if(casesDB!=null && casesDB.size()>0) {
for (Case caze : casesDB) {
cases.add(toDto(caze));
}
}
return cases;
public List<CaseDataDto> getAllCases() {
return cs.getAll().stream()
.map(c -> toCaseDataDto(c))
.collect(Collectors.toList());
}

@Override
public CaseDto getByUuid(String uuid) {
return cases.stream().filter(c -> c.getUuid().equals(uuid)).findFirst().orElse(null);
public CaseDataDto getCaseDataByUuid(String uuid) {
return Optional.of(uuid)
.map(u -> cs.getByUuid(u))
.map(c -> toCaseDataDto(c))
.orElse(null);
}

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

// if(dto.getPerson() != null) {
// PersonDto personDto = pf.savePerson(dto.getPerson());
// dto.setPersonDto(personDto);
// }
return toCaseDataDto(caze);

}

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

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

return toDto(caze);
return toCaseDataDto(caze);

}

@Override
public void createDemo() {
List<CaseDto> cases = MockDataGenerator.createCases();
for (CaseDto dto : cases) {
PersonDto personDto = MockDataGenerator.createPerson();
//personDto = pf.savePerson(personDto);
dto.setPersonDto(personDto);
saveCase(dto);

}

public Case fromCaseDataDto(@NotNull CaseDataDto dto) {
boolean createCase = dto.getChangeDate() == null;
Case caze = createCase ? new Case() : cs.getByUuid(dto.getUuid());
caze.setUuid(dto.getUuid());
caze.setDisease(dto.getDisease());
caze.setDescription(dto.getDescription());
caze.setCaseStatus(dto.getCaseStatus());
return caze;
}

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.validation.constraints.NotNull;

import de.symeda.sormas.api.caze.CaseDto;
import de.symeda.sormas.backend.common.AbstractAdoService;
import de.symeda.sormas.backend.person.Person;
import de.symeda.sormas.backend.person.PersonService;
Expand Down Expand Up @@ -35,24 +33,4 @@ public Case createCase(Person person) {
caze.setPerson(person);
return caze;
}

public Case toCase(@NotNull CaseDto dto) {
Case caze = getByUuid(dto.getUuid());

Person person;
if(dto.getPerson()!=null) {
person = ps.toPerson(dto.getPerson());
}
else {
person = ps.createPerson();
}
if(caze==null) {
caze = createCase(person);
}
caze.setUuid(dto.getUuid());
caze.setPerson(person);
caze.setDescription(dto.getDescription());
caze.setCaseStatus(dto.getCaseStatus());
return caze;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.ParameterExpression;
import javax.persistence.criteria.Root;


import de.symeda.sormas.backend.common.AbstractDomainObject;
import de.symeda.sormas.backend.user.Permission;
import de.symeda.sormas.backend.util.ModelConstants;

Expand Down Expand Up @@ -65,8 +65,21 @@ public ADO getById(long id) {

@Override
public ADO getByUuid(String uuid) {
//ADO result = JpaHelper.simpleSingleQuery(em, getElementClass(), AbstractDomainObject.UUID, uuid);
return null;

CriteriaBuilder cb = em.getCriteriaBuilder();
ParameterExpression<String> uuidParam = cb.parameter(String.class, "uuid");
CriteriaQuery<ADO> cq = cb.createQuery(getElementClass());
Root<ADO> from = cq.from(getElementClass());
cq.where(cb.equal(from.get(AbstractDomainObject.UUID), uuidParam));

TypedQuery<ADO> q = em.createQuery(cq)
.setParameter(uuidParam, uuid);

ADO entity = q.getResultList().stream()
.findFirst()
.orElse(null);

return entity;
}

@Override
Expand All @@ -76,6 +89,7 @@ public void ensurePersisted(ADO ado) throws EntityExistsException {
} else if (!em.contains(ado)) {
throw new EntityExistsException("Das Entity ist nicht attacht: " + getElementClass().getSimpleName() + "#" + ado.getUuid());
}
em.flush();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.io.Serializable;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.Date;

import javax.persistence.Basic;
Expand All @@ -11,8 +12,6 @@
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;
import javax.validation.constraints.Size;
Expand Down Expand Up @@ -42,7 +41,7 @@ public abstract class AbstractDomainObject implements Serializable, Cloneable, D

private Long id;
private String uuid;
private Date creationDate;
private Timestamp creationDate;
private Timestamp changeDate;

@Override
Expand Down Expand Up @@ -81,15 +80,14 @@ public void setUuid(String uuid) {
}

@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
public Date getCreationDate() {
public Timestamp getCreationDate() {
if (creationDate == null) {
creationDate = new Date();
creationDate = Timestamp.from(Instant.now());
}
return creationDate;
}

public void setCreationDate(Date creationDate) {
public void setCreationDate(Timestamp creationDate) {
this.creationDate = creationDate;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.List;

import javax.persistence.EntityExistsException;
import javax.validation.constraints.NotNull;

import de.symeda.sormas.backend.common.AbstractDomainObject;

Expand All @@ -12,7 +13,7 @@ public interface AdoService<ADO extends AbstractDomainObject> {

ADO getById(long id);

ADO getByUuid(String uuid);
ADO getByUuid(@NotNull String uuid);

// /**
// * @deprecated Das ist ein Hibernate-spezifisches Feature
Expand Down
Loading

0 comments on commit b8da5dd

Please sign in to comment.