package com.adobe.prefs.admin.core; import org.springframework.hateoas.Link; import org.springframework.hateoas.ResourceSupport; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import java.util.prefs.Preferences; @XmlRootElement(name = "preference") public class PrefResource extends ResourceSupport { private final Preferences parent; private final String key; private final String value; PrefResource() { // FU, JAXB! throw new IllegalStateException(); } public PrefResource(String realm, Preferences parent, String key, boolean withParentLink) { this.parent = parent; this.key = key; this.value = parent.get(key, null); add(new Link(Paths.path(realm, parent.absolutePath(), key))); if (withParentLink) { add(new Link(Paths.path(realm, parent.absolutePath(), null), "parent")); } } @XmlElement public String getKey() { return key; } @XmlElement public String getValue() { return value != null ? value : ""; } }