View Javadoc
1   package de.dlr.shepard.neo4Core.services;
2   
3   import java.util.List;
4   
5   import de.dlr.shepard.neo4Core.dao.DataObjectDAO;
6   import de.dlr.shepard.neo4Core.dao.URIReferenceDAO;
7   import de.dlr.shepard.neo4Core.dao.UserDAO;
8   import de.dlr.shepard.neo4Core.entities.URIReference;
9   import de.dlr.shepard.neo4Core.io.URIReferenceIO;
10  import de.dlr.shepard.util.DateHelper;
11  import lombok.extern.slf4j.Slf4j;
12  
13  @Slf4j
14  public class URIReferenceService implements IReferenceService<URIReference, URIReferenceIO> {
15  
16  	private URIReferenceDAO uRIReferenceDAO = new URIReferenceDAO();
17  	private DataObjectDAO dataObjectDAO = new DataObjectDAO();
18  	private UserDAO userDAO = new UserDAO();
19  	private DateHelper dateHelper = new DateHelper();
20  
21  	@Override
22  	public List<URIReference> getAllReferencesByDataObjectShepardId(long dataObjectShepardId) {
23  		var references = uRIReferenceDAO.findByDataObjectShepardId(dataObjectShepardId);
24  		return references;
25  	}
26  
27  	@Override
28  	public URIReference getReferenceByShepardId(long uriReferenceShepardId) {
29  		var reference = uRIReferenceDAO.findByShepardId(uriReferenceShepardId);
30  		if (reference == null || reference.isDeleted()) {
31  			log.error("URI Reference with id {} is null or deleted", uriReferenceShepardId);
32  			return null;
33  		}
34  		return reference;
35  	}
36  
37  	@Override
38  	public URIReference createReferenceByShepardId(long dataObjectShepardId, URIReferenceIO uriReference,
39  			String username) {
40  		var user = userDAO.find(username);
41  		var dataObject = dataObjectDAO.findLightByShepardId(dataObjectShepardId);
42  
43  		var toCreate = new URIReference();
44  		toCreate.setCreatedAt(dateHelper.getDate());
45  		toCreate.setCreatedBy(user);
46  		toCreate.setDataObject(dataObject);
47  		toCreate.setName(uriReference.getName());
48  		toCreate.setUri(uriReference.getUri());
49  
50  		var created = uRIReferenceDAO.createOrUpdate(toCreate);
51  		created.setShepardId(created.getId());
52  		created = uRIReferenceDAO.createOrUpdate(created);
53  		return created;
54  	}
55  
56  	@Override
57  	public boolean deleteReferenceByShepardId(long uriReferenceShepardId, String username) {
58  		var user = userDAO.find(username);
59  
60  		var old = uRIReferenceDAO.findByShepardId(uriReferenceShepardId);
61  		old.setDeleted(true);
62  		old.setUpdatedAt(dateHelper.getDate());
63  		old.setUpdatedBy(user);
64  
65  		uRIReferenceDAO.createOrUpdate(old);
66  		return true;
67  	}
68  
69  }