View Javadoc
1   package de.dlr.shepard.neo4Core.services;
2   
3   import java.util.List;
4   
5   import de.dlr.shepard.neo4Core.dao.BasicReferenceDAO;
6   import de.dlr.shepard.neo4Core.dao.UserDAO;
7   import de.dlr.shepard.neo4Core.entities.BasicReference;
8   import de.dlr.shepard.util.DateHelper;
9   import de.dlr.shepard.util.QueryParamHelper;
10  import lombok.extern.slf4j.Slf4j;
11  
12  @Slf4j
13  public class BasicReferenceService {
14  
15  	private BasicReferenceDAO basicReferenceDAO = new BasicReferenceDAO();
16  	private UserDAO userDAO = new UserDAO();
17  	private DateHelper dateHelper = new DateHelper();
18  
19  	/**
20  	 * Searches the neo4j database for a BasicReference
21  	 *
22  	 * @param shepardId identifies the searched BasicReference
23  	 *
24  	 * @return the BasicReference with the given id or null
25  	 */
26  	public BasicReference getReferenceByShepardId(long shepardId) {
27  		BasicReference basicReference = basicReferenceDAO.findByShepardId(shepardId);
28  		if (basicReference == null || basicReference.isDeleted()) {
29  			log.error("Basic Reference with id {} is null or deleted", shepardId);
30  			return null;
31  		}
32  		return basicReference;
33  	}
34  
35  	/**
36  	 * Searches the database for BasicReferences.
37  	 *
38  	 * @param dataObjectShepardId identifies the DataObject
39  	 * @param params              encapsulates possible parameters
40  	 * @return a List of BasicReferences
41  	 */
42  	public List<BasicReference> getAllBasicReferencesByDataObjectShepardId(long dataObjectShepardId,
43  			QueryParamHelper params) {
44  		var references = basicReferenceDAO.findByDataObjectShepardId(dataObjectShepardId, params);
45  		return references;
46  	}
47  
48  	/**
49  	 * Set the deleted flag for the Reference
50  	 *
51  	 * @param basicReferenceShepardId identifies the BasicReference to be deleted
52  	 * @param username                identifies the user
53  	 * @return a boolean to identify if the BasicReference was successfully removed
54  	 */
55  	public boolean deleteReferenceByShepardId(long basicReferenceShepardId, String username) {
56  		var user = userDAO.find(username);
57  
58  		var basicReference = basicReferenceDAO.findByShepardId(basicReferenceShepardId);
59  		basicReference.setDeleted(true);
60  		basicReference.setUpdatedAt(dateHelper.getDate());
61  		basicReference.setUpdatedBy(user);
62  
63  		basicReferenceDAO.createOrUpdate(basicReference);
64  		return true;
65  	}
66  
67  }