package io.github.ibuildthecloud.gdapi.model.impl; import io.github.ibuildthecloud.gdapi.context.ApiContext; import io.github.ibuildthecloud.gdapi.model.Resource; import io.github.ibuildthecloud.gdapi.url.UrlBuilder; import java.net.URL; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class ResourceImpl implements Resource { String id, type; Map<String, URL> links = new LinkedHashMap<String, URL>(); Map<String, URL> actions = new LinkedHashMap<String, URL>(); Map<String, Object> fields = new TreeMap<String, Object>(); public ResourceImpl() { } public ResourceImpl(String id, String type, Map<String, Object> fields) { this.id = id; this.type = type; this.fields = fields; } @Override public String getId() { return id; } @Override public String getType() { return type; } @Override public String getBaseType() { return getType(); } @Override public Map<String, URL> getLinks() { if (!links.containsKey(UrlBuilder.SELF)) { URL self = ApiContext.getUrlBuilder().resourceReferenceLink(this); if (self != null) { links.put(UrlBuilder.SELF, self); } } return links; } @Override public Map<String, URL> getActions() { return actions; } @Override public Map<String, Object> getFields() { return fields; } public void setId(String id) { this.id = id; } public void setType(String type) { this.type = type; } public void setLinks(Map<String, URL> links) { this.links = links; } public void setActions(Map<String, URL> actions) { this.actions = actions; } public void setFields(Map<String, Object> fields) { this.fields = fields; } }