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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
package com.ufund.api.ufundapi.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Arrays;
public class Need {
public enum GoalType {
MONETARY,
PHYSICAL
}
@JsonProperty("name") private String name;
@JsonProperty("image") private String image;
@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("image") String image, @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.image = image;
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 image The image representation 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 image, String location, double maxGoal, GoalType type, boolean urgent, String description) {
this.name = name;
this.image = image;
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.image = other.image;
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;
}
@Override
public String toString() {
return "Need{" +
"name='" + name + '\'' +
", image='" + image + '\'' +
", location='" + location + '\'' +
", id=" + id +
", filterAttributes=" + Arrays.toString(filterAttributes) +
", type=" + type +
", maxGoal=" + maxGoal +
", urgent=" + urgent +
", current=" + current +
", description='" + description + '\'' +
'}';
}
}
|