From 3b9058128ed3d5d96928725413ea4977f690d0f2 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 14 Jul 2018 12:28:00 -0700 Subject: Add data models for GroupSearch API --- .../com/p4square/ccbapi/model/CCBIDReference.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main/java/com/p4square/ccbapi/model/CCBIDReference.java (limited to 'src/main/java/com/p4square/ccbapi/model/CCBIDReference.java') 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 { + @Override + public Reference unmarshal(CCBIDReference ccbidReference) throws Exception { + return ccbidReference.toReference(); + } + + @Override + public CCBIDReference marshal(Reference reference) throws Exception { + return new CCBIDReference(reference); + } + } +} -- cgit v1.2.3