1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
package com.ufund.api.ufundapi.model;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Need {
public enum GoalType {
MONETARY,
PHYSICAL
}
@JsonProperty("name") private String name;
@JsonProperty("location") private String location;
@JsonProperty("id") private int id;
@JsonProperty("filterAttributes") private String[] filterAttributes;
@JsonProperty("type") final private GoalType type;
@JsonProperty("maxGoal") private double maxGoal;
@JsonProperty("urgent") private boolean urgent;
@JsonProperty("current") private double current;
@JsonProperty("description") private String description;
/**
* Create a new need, used by the controller
*
* @param name The name of the need
* @param location The physical location of the need
* @param id The unique ID of the need
* @param maxGoal The maximum goal for this need
* @param type The type of need (monetary, physical)
* @param urgent The urgency of the need
* @param description The description of the need
*/
public Need(@JsonProperty("name") String name, @JsonProperty("location") String location, @JsonProperty("id") int id, @JsonProperty("maxGoal") double maxGoal, @JsonProperty("type") GoalType type, @JsonProperty("urgent") boolean urgent, @JsonProperty("Description") String description) {
this.id = id;
this.location = location;
this.name = name;
this.maxGoal = maxGoal;
this.type = type;
this.urgent = urgent;
this.description = description;
}
/**
* Create a new need
*
* @param name The name of the need
* @param location The location of the need
* @param maxGoal The maximum goal for this need
* @param type The type of need (monetary, physical)
* @param urgent The urgency of the need
* @param description The description of the need
*/
public Need(String name, String location, double maxGoal, GoalType type, boolean urgent, String description) {
this.name = name;
this.location = location;
this.type = type;
this.maxGoal = maxGoal;
this.urgent = urgent;
this.description = description;
}
/**
* Create a deep copy of another need
*
* @param other The need to copy from
*/
public Need(Need other) {
this.name = other.name;
this.location = other.location;
this.id = other.id;
this.filterAttributes = other.filterAttributes;
this.type = other.type;
this.maxGoal = other.maxGoal;
this.current = other.current;
this.urgent = other.urgent;
this.description = other.description;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public String[] getFilterAttributes() {
return filterAttributes;
}
public GoalType getType() {
return type;
}
public double getMaxGoal() {
return maxGoal;
}
public double getCurrent() {
return current;
}
public void setCurrent(double current) {
this.current = current;
}
public void incrementCurrent(double incrementAmount) {
this.current += incrementAmount;
}
public void setFilterAttributes(String[] filterAttributes) {
this.filterAttributes = filterAttributes;
}
public void setMaxGoal(double maxGoal) {
this.maxGoal = maxGoal;
}
public void setName(String name) {
this.name = name;
}
public void setID(int id){
this.id = id;
}
}
|