Skip to content

Commit 8281335

Browse files
committed
refactoring
1 parent 4a80514 commit 8281335

File tree

4 files changed

+478
-376
lines changed

4 files changed

+478
-376
lines changed
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
package net.apnic.rdap.conformance.attributetest;
2+
3+
import java.math.BigInteger;
4+
import java.math.BigDecimal;
5+
import java.util.Arrays;
6+
import java.util.HashSet;
7+
import java.util.Set;
8+
import java.util.Map;
9+
import java.util.List;
10+
11+
import com.google.common.collect.Sets;
12+
13+
import net.apnic.rdap.conformance.Result;
14+
import net.apnic.rdap.conformance.Utils;
15+
import net.apnic.rdap.conformance.Context;
16+
import net.apnic.rdap.conformance.ObjectTest;
17+
import net.apnic.rdap.conformance.AttributeTest;
18+
19+
/**
20+
* <p>Autnum class.</p>
21+
*
22+
* @author Tom Harrison <[email protected]>
23+
* @version 0.2
24+
*/
25+
public final class Autnum implements AttributeTest {
26+
private String autnum = null;
27+
private Set<String> knownAttributes = new HashSet<String>();
28+
29+
/**
30+
* <p>Constructor for Autnum.</p>
31+
*/
32+
public Autnum() { }
33+
34+
/**
35+
* <p>Constructor for Autnum.</p>
36+
*
37+
* @param autnum a {@link java.lang.String} object.
38+
*/
39+
public Autnum(final String autnum) {
40+
this.autnum = autnum;
41+
}
42+
43+
private BigInteger processAutnum(final Context context,
44+
final Result proto,
45+
final Map<String, Object> data,
46+
final String key) {
47+
Result asnres = new Result(proto);
48+
Object asnObj = data.get(key);
49+
if (asnObj == null) {
50+
asnres.setStatus(Result.Status.Failure);
51+
asnres.addNode(key);
52+
asnres.setInfo("not present");
53+
context.addResult(asnres);
54+
return null;
55+
} else {
56+
asnres.setStatus(Result.Status.Success);
57+
asnres.addNode(key);
58+
asnres.setInfo("present");
59+
context.addResult(asnres);
60+
}
61+
62+
Result asn2res = new Result(proto);
63+
asn2res.setStatus(Result.Status.Success);
64+
asn2res.addNode(key);
65+
asn2res.setInfo("valid");
66+
BigInteger asn = null;
67+
try {
68+
asn = BigDecimal.valueOf((Double) data.get(key))
69+
.toBigIntegerExact();
70+
} catch (Exception e) {
71+
asn2res.setStatus(Result.Status.Failure);
72+
asn2res.setInfo("invalid: " + e.toString());
73+
context.addResult(asn2res);
74+
return null;
75+
}
76+
context.addResult(asn2res);
77+
78+
return asn;
79+
}
80+
81+
/** {@inheritDoc} */
82+
public boolean run(final Context context, final Result proto,
83+
final Map<String, Object> data) {
84+
BigInteger startAddress =
85+
processAutnum(context, proto, data, "startAutnum");
86+
BigInteger endAddress =
87+
processAutnum(context, proto, data, "endAutnum");
88+
89+
if ((startAddress != null) && (endAddress != null)) {
90+
Result r = new Result(proto);
91+
r.addNode("startAutnum");
92+
r.setStatus(Result.Status.Success);
93+
r.setInfo("startAutnum less then or equal to endAutnum");
94+
if (startAddress.compareTo(endAddress) > 0) {
95+
r.setStatus(Result.Status.Failure);
96+
r.setInfo("startAutnum more than endAutnum");
97+
}
98+
context.addResult(r);
99+
}
100+
101+
knownAttributes = Sets.newHashSet("startAutnum",
102+
"endAutnum");
103+
104+
return Utils.runTestList(
105+
context, proto, data, knownAttributes, true,
106+
Arrays.asList(
107+
new ScalarAttribute("name"),
108+
new ScalarAttribute("handle"),
109+
new ScalarAttribute("type"),
110+
new Country(),
111+
new StandardResponse()
112+
)
113+
);
114+
}
115+
116+
/**
117+
* <p>Getter for the field <code>knownAttributes</code>.</p>
118+
*
119+
* @return a {@link java.util.Set} object.
120+
*/
121+
public Set<String> getKnownAttributes() {
122+
return knownAttributes;
123+
}
124+
}

0 commit comments

Comments
 (0)