Project

General

Profile

1
package eu.dnetlib.data.information.oai.publisher.info;
2

    
3
import java.text.SimpleDateFormat;
4
import java.util.Date;
5
import java.util.Set;
6
import java.util.TimeZone;
7

    
8
import com.google.common.collect.Sets;
9

    
10
public class RecordInfo {
11

    
12
	private String prefix = "";
13
	private String identifier = "";
14
	private Date datestamp = null;
15
	private Set<String> setspecs = Sets.newHashSet();
16
	private String metadata = "";
17
	private String internalId = "";
18
	private boolean deleted;
19
	private String provenance = "";
20

    
21
	public RecordInfo() {}
22

    
23
	public RecordInfo(final String prefix, final String identifier, final Date datestamp, final String setspec, final String metadata, final boolean deleted) {
24
		this(prefix, identifier, datestamp, Sets.newHashSet(setspec), metadata, deleted);
25
	}
26

    
27
	public RecordInfo(final String prefix, final String identifier, final Date datestamp, final Set<String> setspecs, final String metadata,
28
			final boolean deleted) {
29
		super();
30
		this.prefix = prefix;
31
		this.identifier = identifier;
32
		this.datestamp = datestamp;
33
		this.setspecs = setspecs;
34
		this.metadata = metadata;
35
		this.deleted = deleted;
36
	}
37

    
38
	public boolean addSetspec(final String setspec) {
39
		if (!setspecs.contains(setspec)) {
40
			setspecs.add(setspec);
41
			return true;
42
		} else return false;
43
	}
44

    
45
	public String getPrefix() {
46
		return prefix;
47
	}
48

    
49
	public void setPrefix(final String prefix) {
50
		this.prefix = prefix;
51
	}
52

    
53
	public String getIdentifier() {
54
		return identifier;
55
	}
56

    
57
	public void setIdentifier(final String identifier) {
58
		this.identifier = identifier;
59
	}
60

    
61
	public Date getDatestamp() {
62
		return datestamp;
63
	}
64

    
65
	public void setDatestamp(final Date datestamp) {
66
		this.datestamp = datestamp;
67
	}
68

    
69
	public Set<String> getSetspecs() {
70
		return setspecs;
71
	}
72

    
73
	public void setSetspecs(final Set<String> setspecs) {
74
		this.setspecs = setspecs;
75
	}
76

    
77
	public String getMetadata() {
78
		return metadata;
79
	}
80

    
81
	public void setMetadata(final String metadata) {
82
		this.metadata = metadata;
83
	}
84

    
85
	/**
86
	 * 
87
	 * @return the date formatted in ISO8601, UTC with format YYYY-MM-DDThh:mm:ssZ, where Z is the time zone.
88
	 */
89
	public String getNormalizedDatestamp() {
90
		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
91
		formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
92
		String date = formatter.format(datestamp);
93
		return date.replace("+0000", "Z");
94
	}
95

    
96
	public String getInternalId() {
97
		return internalId;
98
	}
99

    
100
	public void setInternalId(final String internalId) {
101
		this.internalId = internalId;
102
	}
103

    
104
	public boolean isDeleted() {
105
		return deleted;
106
	}
107

    
108
	public void setDeleted(final boolean deleted) {
109
		this.deleted = deleted;
110
	}
111

    
112
	public String getProvenance() {
113
		return provenance;
114
	}
115

    
116
	public void setProvenance(String provenance) {
117
		this.provenance = provenance;
118
	}
119

    
120
}
(5-5/8)