1 package uk.ac.ebi.intenz.webapp.dtos;
2
3 import javax.servlet.http.HttpServletRequest;
4
5 import org.apache.struts.action.ActionErrors;
6 import org.apache.struts.action.ActionForm;
7 import org.apache.struts.action.ActionMapping;
8 import org.apache.struts.action.ActionMessage;
9
10 import uk.ac.ebi.biobabel.validator.SyntaxValidator;
11 import uk.ac.ebi.intenz.domain.constants.EnzymeNameQualifierConstant;
12 import uk.ac.ebi.intenz.domain.constants.EnzymeSourceConstant;
13 import uk.ac.ebi.intenz.domain.constants.EnzymeViewConstant;
14 import uk.ac.ebi.intenz.webapp.utilities.IntEnzValidations;
15 import uk.ac.ebi.xchars.SpecialCharacters;
16 import uk.ac.ebi.xchars.XMLErrorReport;
17 import uk.ac.ebi.xchars.utilities.XCharsValidator;
18
19
20
21
22
23 public class EnzymeNameDTO extends ActionForm {
24
25 private String name;
26 private String xmlName;
27 private String type;
28 private String qualifier;
29 private String qualifierDisplay;
30 private String orderIn;
31 private String source;
32 private String view;
33 private String sourceDisplay;
34 private String viewDisplayString;
35 private String viewDisplayImage;
36
37 public EnzymeNameDTO() {
38 name = "";
39 xmlName = "";
40 type = "";
41 qualifier = "NON";
42 qualifierDisplay = "";
43 orderIn = "0";
44 source = "INTENZ";
45 view = "INTENZ";
46 sourceDisplay = "IntEnz";
47 viewDisplayString = "all views";
48 viewDisplayImage = "\"<img src=\\\"images/blue_bullet.gif\\\"/><img src=\\\"images/green_bullet.gif\\\"/><img src=\\\"images/red_bullet.gif\\\"/>\"";
49 }
50
51 public EnzymeNameDTO(EnzymeNameDTO enzymeNameDTO) {
52 setName(enzymeNameDTO.getName());
53 setXmlName(enzymeNameDTO.getXmlName());
54 setType(enzymeNameDTO.getType());
55 setQualifier(enzymeNameDTO.getQualifier());
56 setQualifierDisplay(enzymeNameDTO.getQualifierDisplay());
57 setOrderIn(enzymeNameDTO.getOrderIn());
58 setSource(enzymeNameDTO.getSource());
59 setView(enzymeNameDTO.getView());
60 setSourceDisplay(enzymeNameDTO.getSourceDisplay());
61 setViewDisplayString(enzymeNameDTO.getViewDisplayString());
62 setViewDisplayImage(enzymeNameDTO.getViewDisplayImage());
63 }
64
65
66
67
68
69
70
71
72
73 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
74 ActionErrors errors = new ActionErrors();
75
76
77 if (xmlName != null && !xmlName.equals("")) {
78 SpecialCharacters encoding = (SpecialCharacters) request.getSession().getAttribute("characters");
79 name = encoding.xml2Display(xmlName.trim());
80 }
81 if (!SyntaxValidator.getInstance().validate(xmlName, SyntaxValidator.BRACKETS))
82 errors.add("names", new ActionMessage("errors.form.brackets", "name", xmlName));
83 XMLErrorReport xmlErrors = XCharsValidator.validate(xmlName);
84 if (xmlErrors != null)
85 errors.add("names",
86 new ActionMessage("errors.form.xchars", "name", xmlName, xmlErrors.getErrorMessage()));
87 if (!IntEnzValidations.hasNoUnicode(xmlName))
88 errors.add("names", new ActionMessage("errors.form.unicode", "name", xmlName));
89 return errors.isEmpty() ? null : errors;
90 }
91
92 public boolean equals(Object o) {
93 if (this == o) return true;
94 if (!(o instanceof EnzymeNameDTO)) return false;
95
96 final EnzymeNameDTO enzymeNameDTO = (EnzymeNameDTO) o;
97
98 if (source != null ? !source.equals(enzymeNameDTO.source) : enzymeNameDTO.source != null) return false;
99 if (type != null ? !type.equals(enzymeNameDTO.type) : enzymeNameDTO.type != null) return false;
100 if (xmlName != null ? !xmlName.equals(enzymeNameDTO.xmlName) : enzymeNameDTO.xmlName != null) return false;
101
102 return true;
103 }
104
105 public int hashCode() {
106 int result;
107 result = (xmlName != null ? xmlName.hashCode() : 0);
108 result = 29 * result + (type != null ? type.hashCode() : 0);
109 result = 29 * result + (source != null ? source.hashCode() : 0);
110 return result;
111 }
112
113
114
115
116 public String getName() {
117 return name;
118 }
119
120 public void setName(String name) {
121 this.name = name.trim();
122 }
123
124 public String getXmlName() {
125 return xmlName;
126 }
127
128 public void setXmlName(String xmlName) {
129 this.xmlName = xmlName.trim();
130 }
131
132 public String getType() {
133 return type;
134 }
135
136 public void setType(String type) {
137 this.type = type;
138 }
139
140 public String getQualifier() {
141 return qualifier;
142 }
143
144 public void setQualifier(String qualifier) {
145 this.qualifier = qualifier;
146 if (qualifier != null && !qualifier.equals("")) {
147 EnzymeNameQualifierConstant qualifierConstant = EnzymeNameQualifierConstant.valueOf(qualifier);
148 if (qualifierConstant == EnzymeNameQualifierConstant.UNDEF) setQualifierDisplay("");
149 setQualifierDisplay(qualifierConstant.toHTML(xmlName));
150 }
151 }
152
153 public String getQualifierDisplay() {
154 return qualifierDisplay;
155 }
156
157 public void setQualifierDisplay(String qualifierDisplay) {
158 this.qualifierDisplay = qualifierDisplay;
159 }
160
161 public String getOrderIn() {
162 return orderIn;
163 }
164
165 public void setOrderIn(String orderIn) {
166 this.orderIn = orderIn;
167 }
168
169 public String getSource() {
170 return source;
171 }
172
173 public void setSource(String source) {
174 this.source = source;
175 if (source != null && !source.equals("")) {
176 sourceDisplay = EnzymeSourceConstant.toDisplayString(source);
177 }
178 }
179
180 public String getView() {
181 return view;
182 }
183
184 public void setView(String view) {
185 this.view = view;
186 if (view != null && !view.equals("")) updateView();
187 }
188
189 public String getSourceDisplay() {
190 return sourceDisplay;
191 }
192
193 public void setSourceDisplay(String sourceDisplay) {
194 this.sourceDisplay = sourceDisplay;
195 }
196
197 public String getViewDisplayString() {
198 return viewDisplayString;
199 }
200
201 public void setViewDisplayString(String viewDisplayString) {
202 this.viewDisplayString = viewDisplayString;
203 }
204
205 public String getViewDisplayImage() {
206 return viewDisplayImage;
207 }
208
209 public void setViewDisplayImage(String viewDisplayImage) {
210 this.viewDisplayImage = viewDisplayImage;
211 }
212
213
214
215
216 private void updateView() {
217 viewDisplayImage = EnzymeViewConstant.toDisplayImage(view);
218 viewDisplayString = EnzymeViewConstant.toDisplayString(view);
219 }
220 }