summaryrefslogtreecommitdiff
path: root/src/main/java/com/p4square/ccbapi/model/CCBIDReference.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2018-07-14 12:28:00 -0700
committerJesse Morgan <jesse@jesterpm.net>2018-07-14 12:28:00 -0700
commit3b9058128ed3d5d96928725413ea4977f690d0f2 (patch)
tree4e90349000bd0b7d4cfcfa04c48ba6b649f3d155 /src/main/java/com/p4square/ccbapi/model/CCBIDReference.java
parent633d0cebff548b6a54ac33e464447d93e800bf12 (diff)
Add data models for GroupSearch APIgroups-api
Diffstat (limited to 'src/main/java/com/p4square/ccbapi/model/CCBIDReference.java')
-rw-r--r--src/main/java/com/p4square/ccbapi/model/CCBIDReference.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/com/p4square/ccbapi/model/CCBIDReference.java b/src/main/java/com/p4square/ccbapi/model/CCBIDReference.java
new file mode 100644
index 0000000..bc76368
--- /dev/null
+++ b/src/main/java/com/p4square/ccbapi/model/CCBIDReference.java
@@ -0,0 +1,48 @@
+package com.p4square.ccbapi.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+/**
+ * Specialization of {@link Reference}.
+ *
+ * This class exists because CCB has two different names for the "id"
+ * attribute of a reference.
+ */
+@XmlAccessorType(XmlAccessType.NONE)
+/* package-private */ class CCBIDReference {
+ @XmlAttribute(name="ccb_id")
+ private int id;
+
+ @XmlValue
+ private String name;
+
+ public CCBIDReference() {}
+
+ public CCBIDReference(Reference r) {
+ this.id = r.getId();
+ this.name = r.getName();
+ }
+
+ public Reference toReference() {
+ final Reference r = new Reference();
+ r.setId(id);
+ r.setName(name);
+ return r;
+ }
+
+ public static final class Adapter extends XmlAdapter<CCBIDReference, Reference> {
+ @Override
+ public Reference unmarshal(CCBIDReference ccbidReference) throws Exception {
+ return ccbidReference.toReference();
+ }
+
+ @Override
+ public CCBIDReference marshal(Reference reference) throws Exception {
+ return new CCBIDReference(reference);
+ }
+ }
+}