Skip to content
This repository was archived by the owner on Dec 15, 2023. It is now read-only.

Commit 210f8a7

Browse files
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents 305afd0 + 95dd640 commit 210f8a7

File tree

8 files changed

+390
-0
lines changed

8 files changed

+390
-0
lines changed

pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@
130130
<groupId>org.slf4j</groupId>
131131
<artifactId>slf4j-simple</artifactId>
132132
</dependency>
133+
134+
<!-- Utils -->
135+
<dependency>
136+
<groupId>org.apache.commons</groupId>
137+
<artifactId>commons-lang3</artifactId>
138+
</dependency>
133139
</dependencies>
134140

135141
<build>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package org.openherbarium.webapp.model;
2+
3+
import java.time.LocalDate;
4+
import java.util.ArrayList;
5+
import java.util.Collections;
6+
import java.util.List;
7+
import java.util.Set;
8+
9+
public class Metadata {
10+
11+
public static final String TAXON_NAME = "Taxon";
12+
public static final String RECORDER = "Finder";
13+
public static final String DETERMINER = "Bestimmer";
14+
public static final String DATE = "Datum";
15+
public static final String SCANS = "Scans";
16+
17+
private long id;
18+
private String externalId;
19+
private String taxonName;
20+
private Person recorder;
21+
private Person determiner;
22+
private LocalDate date;
23+
private Set<Scan> scans;
24+
25+
public Metadata() {
26+
super();
27+
}
28+
29+
public Metadata(long id, String externalId, String taxonName, Person recorder, Person determiner,
30+
LocalDate date, Set<Scan> scans) {
31+
super();
32+
this.id = id;
33+
this.externalId = externalId;
34+
this.taxonName = taxonName;
35+
this.recorder = recorder;
36+
this.determiner = determiner;
37+
this.date = date;
38+
this.scans = scans;
39+
}
40+
41+
public long getId() {
42+
return id;
43+
}
44+
45+
public void setId(long id) {
46+
this.id = id;
47+
}
48+
49+
public String getExternalId() {
50+
return externalId;
51+
}
52+
53+
public void setExternalId(String externalId) {
54+
this.externalId = externalId;
55+
}
56+
57+
public String getTaxonName() {
58+
return taxonName;
59+
}
60+
61+
public void setTaxonName(String taxonName) {
62+
this.taxonName = taxonName;
63+
}
64+
65+
public Person getRecorder() {
66+
return recorder;
67+
}
68+
69+
public void setRecorder(Person recorder) {
70+
this.recorder = recorder;
71+
}
72+
73+
public Person getDeterminer() {
74+
return determiner;
75+
}
76+
77+
public void setDeterminer(Person determiner) {
78+
this.determiner = determiner;
79+
}
80+
81+
public Set<Scan> getScans() {
82+
return scans;
83+
}
84+
85+
public void setScans(Set<Scan> scans) {
86+
this.scans = scans;
87+
}
88+
89+
public LocalDate getDate() {
90+
return date;
91+
}
92+
93+
public void setDate(LocalDate date) {
94+
this.date = date;
95+
}
96+
97+
public Scan fetchDefaultScan() {
98+
return fetchScansAsSortedList().get(0);
99+
}
100+
101+
public List<Scan> fetchScansAsSortedList() {
102+
final Set<Scan> scans = getScans();
103+
if (scans != null && !scans.isEmpty()) {
104+
final List<Scan> scansList = new ArrayList<>(scans);
105+
Collections.sort(scansList);
106+
return scansList;
107+
}
108+
return new ArrayList<>();
109+
}
110+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.openherbarium.webapp.model;
2+
3+
import java.time.LocalDate;
4+
5+
public class MetadataFilter {
6+
private String taxon;
7+
private String determiner;
8+
private String recorder;
9+
private LocalDate from;
10+
private LocalDate to;
11+
12+
public MetadataFilter(String taxon, String determiner, String recorder, LocalDate from,
13+
LocalDate to) {
14+
this.taxon = taxon;
15+
this.determiner = determiner;
16+
this.recorder = recorder;
17+
this.from = from;
18+
this.to = to;
19+
}
20+
21+
public String getDeterminer() {
22+
return determiner;
23+
}
24+
25+
public LocalDate getFrom() {
26+
return from;
27+
}
28+
29+
public String getRecorder() {
30+
return recorder;
31+
}
32+
33+
public String getTaxon() {
34+
return taxon;
35+
}
36+
37+
public LocalDate getTo() {
38+
return to;
39+
}
40+
41+
public void setDeterminer(String determiner) {
42+
this.determiner = determiner;
43+
}
44+
45+
public void setFrom(LocalDate from) {
46+
this.from = from;
47+
}
48+
49+
public void setRecorder(String recorder) {
50+
this.recorder = recorder;
51+
}
52+
53+
public void setTaxon(String taxon) {
54+
this.taxon = taxon;
55+
}
56+
57+
public void setTo(LocalDate to) {
58+
this.to = to;
59+
}
60+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.openherbarium.webapp.model;
2+
3+
import java.util.List;
4+
5+
public interface MetadataService {
6+
7+
public enum SortField {
8+
RECORDER, DETERMINER, DATE, TAXON
9+
}
10+
11+
public List<Metadata> find(SortField sortField, SortOrder sortOrder, int limit, int offset,
12+
MetadataFilter metadataFilter);
13+
14+
public long count(MetadataFilter metadataFilter);
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.openherbarium.webapp.model;
2+
3+
import java.util.Comparator;
4+
5+
public class Person implements Comparable<Person> {
6+
public Person() {
7+
super();
8+
}
9+
10+
public Person(String firstName, String lastName) {
11+
super();
12+
this.firstName = firstName;
13+
this.lastName = lastName;
14+
}
15+
16+
private String firstName;
17+
private String lastName;
18+
19+
public String getFirstName() {
20+
return firstName;
21+
}
22+
23+
public void setFirstName(String firstName) {
24+
this.firstName = firstName;
25+
}
26+
27+
public String getLastName() {
28+
return lastName;
29+
}
30+
31+
public void setLastName(String lastName) {
32+
this.lastName = lastName;
33+
}
34+
35+
@Override
36+
public int compareTo(Person person2) {
37+
return Comparator.comparing(Person::getLastName).thenComparing(Person::getFirstName)
38+
.compare(this, person2);
39+
}
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.openherbarium.webapp.model;
2+
3+
public class Scan implements Comparable<Scan> {
4+
private long id;
5+
private String name;
6+
7+
public Scan() {
8+
super();
9+
}
10+
11+
public Scan(long id, String name) {
12+
super();
13+
this.id = id;
14+
this.name = name;
15+
}
16+
17+
public long getId() {
18+
return id;
19+
}
20+
21+
public void setId(long id) {
22+
this.id = id;
23+
}
24+
25+
public String getName() {
26+
return name;
27+
}
28+
29+
public void setName(String name) {
30+
this.name = name;
31+
}
32+
33+
@Override
34+
public int compareTo(Scan scan) {
35+
return name.compareTo(scan.getName());
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.openherbarium.webapp.model;
2+
3+
public enum SortOrder {
4+
ASC, DESC
5+
}

0 commit comments

Comments
 (0)