Skip to content
Snippets Groups Projects
Commit 1a152c4b authored by Christoph Dornieden's avatar Christoph Dornieden
Browse files

added generic service

parent 62e38b67
Branches data-transport-objects
No related tags found
No related merge requests found
......@@ -24,7 +24,7 @@ public abstract class AbstractService<Model extends BaseEntity, ModelDto extends
@Inject
protected EntityToDtoMapper modelToDtoMapper;
private Class<Model> persistentClass = (Class<Model>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
protected final Class<Model> persistentClass = (Class<Model>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
// TODO: implement generic methods to simplify subclasses
public List<ModelDto> findAll(){
......
......@@ -3,11 +3,17 @@ package org.iobserve.services;
import org.iobserve.models.dataaccessobjects.DataTransportObject;
import org.iobserve.models.util.BaseEntity;
import javax.persistence.Query;
import java.util.List;
/**
* @author Mathis Neumann
*/
public abstract class AbstractSystemComponentService<Model extends BaseEntity, ModelDto extends DataTransportObject> extends AbstractService<Model, ModelDto> {
public abstract List<ModelDto> findAllBySystem(String systemId);
public List<ModelDto> findAllBySystem(String systemId){
Query query = entityManager.createQuery("Select t from " + persistentClass.getSimpleName() + " t where systemId = :systemId")
.setParameter("systemId", systemId);
return transformModelToDto((List<Model>) query.getResultList());
}
}
package org.iobserve.services;
import org.iobserve.models.NodeGroup;
import org.iobserve.models.dataaccessobjects.NodeGroupDto;
/**
* Created by cdor on 13.06.16.
*/
public class NodeGroupService extends AbstractSystemComponentService<NodeGroup,NodeGroupDto> {
@Override
protected NodeGroupDto transformModelToDto(NodeGroup nodeGroup) {
return this.modelToDtoMapper.transform(nodeGroup);
}
}
package org.iobserve.services;
import org.iobserve.models.Node;
import org.iobserve.models.dataaccessobjects.NodeDto;
/**
* Created by cdor on 13.06.16.
*/
public class NodeService extends AbstractSystemComponentService<Node,NodeDto> {
@Override
protected NodeDto transformModelToDto(Node node) {
return this.modelToDtoMapper.transform(node);
}
}
package org.iobserve.services;
import org.iobserve.models.ServiceInstance;
/**
* Created by cdor on 13.06.16.
*/
public class ServiceInstanceService extends AbstractSystemComponentService<ServiceInstance,ServiceInstanceDto> {
@Override
protected ServiceInstanceDto transformModelToDto(ServiceInstance serviceInstance) {
return this.transformModelToDto(serviceInstance);
}
}
package org.iobserve.services;
import org.iobserve.models.dataaccessobjects.ServiceDto;
/**
* Created by cdor on 13.06.16.
*/
public class ServiceService extends AbstractSystemComponentService<Service,ServiceDto> {
@Override
protected ServiceDto transformModelToDto(Service service) {
return this.transformModelToDto(service);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment