Project

General

Profile

Download (2.56 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.io.operation;
2

    
3
import java.util.List;
4
import java.util.Set;
5

    
6
import org.springframework.stereotype.Component;
7

    
8
import eu.etaxonomy.cdm.api.service.DeleteResult;
9
import eu.etaxonomy.cdm.io.common.CdmImportBase;
10
import eu.etaxonomy.cdm.io.common.DefaultImportState;
11
import eu.etaxonomy.cdm.io.operation.config.DeleteNonReferencedReferencesConfigurator;
12
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
13
import eu.etaxonomy.cdm.model.common.CdmBase;
14
import eu.etaxonomy.cdm.model.reference.Reference;
15
@Component
16

    
17
public class DeleteNonReferencedreferencesUpdater extends CdmImportBase<DeleteNonReferencedReferencesConfigurator, DefaultImportState<DeleteNonReferencedReferencesConfigurator>> {
18

    
19

    
20
	@Override
21
	protected void doInvoke(
22
			DefaultImportState<DeleteNonReferencedReferencesConfigurator> state) {
23

    
24
		if (state.getConfig().isDoAuthors()){
25
			List<TeamOrPersonBase> authors =getAgentService().list(TeamOrPersonBase.class, null, null, null, null);
26
			DeleteResult result;
27
			int deleted = 0;
28
			System.out.println("There are " + authors.size() + " authors");
29
			for (TeamOrPersonBase author: authors){
30
				Set<CdmBase> refObjects = getCommonService().getReferencingObjects(author);
31
				if (refObjects.isEmpty()) {
32
					result = getAgentService().delete(author);
33
					deleted++;
34
					if (!result.isOk()){
35
						System.out.println("Author " + author.getTitleCache() + " with id " + author.getId() + " could not be deleted.");
36
						result = null;
37
					}
38
				}
39
			}
40
			System.out.println(deleted + " authors are deleted.");
41
		}
42
		if (state.getConfig().isDoReferences()){
43
			List<Reference> references =getReferenceService().list(Reference.class, null, null, null, null);
44
			DeleteResult result;
45
			int deleted = 0;
46
			System.out.println("There are " + references.size() + " references");
47
			for (Reference ref: references){
48
				Set<CdmBase> refObjects = getCommonService().getReferencingObjects(ref);
49
				if (refObjects.isEmpty()) {
50
					result = getReferenceService().delete(ref);
51
					deleted++;
52
					if (!result.isOk()){
53
						System.out.println("Reference " + ref.getTitle() + " with id " + ref.getId() + " could not be deleted.");
54
						result = null;
55
					}
56
				}
57
			}
58
			System.out.println(deleted + " references are deleted.");
59
		}
60
	}
61

    
62
	@Override
63
	protected boolean doCheck(
64
			DefaultImportState<DeleteNonReferencedReferencesConfigurator> state) {
65
		// TODO Auto-generated method stub
66
		return false;
67
	}
68

    
69
	@Override
70
	protected boolean isIgnore(
71
			DefaultImportState<DeleteNonReferencedReferencesConfigurator> state) {
72
		// TODO Auto-generated method stub
73
		return false;
74
	}
75

    
76

    
77
}
(4-4/5)