Skip to content

Commit e6551f2

Browse files
committed
Remove warnings in model package
1 parent 8680376 commit e6551f2

File tree

6 files changed

+103
-6
lines changed

6 files changed

+103
-6
lines changed

src/main/java/com/yetanalytics/xapi/model/Extensions.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
@JsonSerialize(using = ExtensionSerializer.class)
2525
public class Extensions {
2626

27-
private Map<String,Object> extMap = new HashMap<String,Object>();
27+
private Map<String,Object> extMap = new HashMap<>();
2828

2929
public Extensions(Map<String, Object> input) {
3030
extMap = input;
@@ -65,9 +65,11 @@ public <T> T read(String key, String jsonPathExpression, Class<T> typeKey) {
6565
return (T) JsonPath.read(json, jsonPathExpression);
6666
} catch (PathNotFoundException e) {
6767
//TODO: logging framework
68-
e.printStackTrace();
68+
System.err.println("Path not found");
69+
// e.printStackTrace();
6970
} catch (JsonProcessingException e) {
70-
e.printStackTrace();
71+
System.err.println("JSON cannot be processed");
72+
// e.printStackTrace();
7173
}
7274
return null;
7375
}

src/main/java/com/yetanalytics/xapi/model/InteractionType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public enum InteractionType {
2121
NUMERIC("numeric"),
2222
OTHER("other");
2323

24-
private String displayName;
24+
private final String displayName;
2525

2626
InteractionType(String displayName) {
2727
this.displayName = displayName;

src/main/java/com/yetanalytics/xapi/model/LangMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
@JsonSerialize(using = LangMapSerializer.class)
2121
public class LangMap {
2222

23-
private HashMap<String,String> languageHashMap = new HashMap<String, String>();
23+
private HashMap<String,String> languageHashMap = new HashMap<>();
2424

2525
/**
2626
* Create a new langmap from a HashMap

src/main/java/com/yetanalytics/xapi/model/ObjectType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public enum ObjectType {
1616
AGENT("Agent"),
1717
GROUP("Group");
1818

19-
private String displayName;
19+
private final String displayName;
2020

2121
ObjectType(String displayName) {
2222
this.displayName = displayName;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.yetanalytics.xapi.validation;
2+
3+
import java.util.regex.Pattern;
4+
5+
public class Regex {
6+
/* Language Tag Regex */
7+
/* RFC 5646, w/ lang subtag limitation */
8+
9+
// Language subtags
10+
// NOTE: We exclude 4-8 character subtags, even though they are allowed in
11+
// the RFC spec, since they are reserved for future (not current) use.
12+
private static final String LANG_TAG = "(?:[A-Za-z]{2,3})";
13+
private static final String LANG_EXT = "(?:-[A-Za-z]{3})?";
14+
15+
// Other subtags
16+
private static final String SCRIPT = "(?:-[A-Za-z]{4})?";
17+
private static final String REGION = "(?:-(?:[A-Za-z]{2}|\\d{3}))?";
18+
private static final String VARIANT = "(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*";
19+
private static final String EXTENSION = "(?:-[A-WY-Za-wy-z0-9](?:-[A-Za-z0-9]{2,8})+)*";
20+
private static final String PRIVATE = "(?:-x(?:-[A-Za-z0-9]{1,8})+)?";
21+
22+
// Grandfathered tags
23+
private static final String GRANDFATHERED_IRREGULAR =
24+
"(?:"
25+
+ "en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|"
26+
+ "i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|"
27+
+ "i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE"
28+
+ ")";
29+
private static final String GRANDFATHERED_REGULAR =
30+
"(?:"
31+
+ "art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|"
32+
+ "zh-hakka|zh-min|zh-min-nan|zh-xiang"
33+
+ ")";
34+
35+
// Tag
36+
private static final String LANGUAGE_TAG_STRING =
37+
"^(?:"
38+
+ "(?:" + LANG_TAG + LANG_EXT + SCRIPT + REGION + VARIANT + EXTENSION + PRIVATE + ")"
39+
+ "|" + GRANDFATHERED_IRREGULAR
40+
+ "|" + GRANDFATHERED_REGULAR
41+
+ ")$";
42+
43+
/* IRI Regex */
44+
/* RFC 3897, with differences noted below */
45+
46+
/* Regular Expressions */
47+
public static final Pattern LANGUAGE_TAG =
48+
Pattern.compile(LANGUAGE_TAG_STRING, Pattern.CASE_INSENSITIVE);
49+
50+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.yetanalytics;
2+
3+
import java.util.Set;
4+
5+
import com.yetanalytics.xapi.model.Agent;
6+
7+
import jakarta.validation.ConstraintViolation;
8+
import jakarta.validation.Validation;
9+
import jakarta.validation.Validator;
10+
import junit.framework.TestCase;
11+
12+
public class ModelTest extends TestCase {
13+
/*
14+
public void testLangMap() {
15+
HashMap<String, String> goodLangMap = new HashMap<>();
16+
HashMap<String, String> badLangMap1 = new HashMap<>();
17+
HashMap<String, String> badLangMap2 = new HashMap<>();
18+
HashMap<String, String> badLangMap3 = new HashMap<>();
19+
20+
goodLangMap.put("en-US", "foobar");
21+
badLangMap1.put("", "foobar");
22+
badLangMap2.put("notValidTag", "foobar");
23+
badLangMap3.put("en-US", "");
24+
25+
assertNotNull(new LangMap(goodLangMap));
26+
assertNull(new LangMap(badLangMap1));
27+
assertNull(new LangMap(badLangMap3));
28+
}
29+
*/
30+
31+
public void testAgent() {
32+
Validator validator = Validation.buildDefaultValidatorFactory()
33+
.getValidator();
34+
35+
Agent agent = new Agent();
36+
agent.setName("Foo");
37+
agent.setMbox("mailto:foo@example.com");
38+
39+
assertEquals("mailto:foo@example.com", agent.getMbox());
40+
41+
Set<ConstraintViolation<Agent>> violations = validator.validate(agent);
42+
assertTrue(violations.isEmpty());
43+
System.out.println(violations);
44+
}
45+
}

0 commit comments

Comments
 (0)