package io.github.ibuildthecloud.gdapi.model.impl; import io.github.ibuildthecloud.gdapi.condition.Condition; import io.github.ibuildthecloud.gdapi.context.ApiContext; import io.github.ibuildthecloud.gdapi.model.Collection; import io.github.ibuildthecloud.gdapi.model.Pagination; import io.github.ibuildthecloud.gdapi.model.Resource; import io.github.ibuildthecloud.gdapi.model.Sort; import io.github.ibuildthecloud.gdapi.url.UrlBuilder; import java.net.URL; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; public class CollectionImpl implements Collection { String type = "collection"; String resourceType; Map<String, URL> links = new HashMap<String, URL>(); Map<String, URL> createTypes = new HashMap<String, URL>(); Map<String, URL> actions = new HashMap<String, URL>(); List<Resource> data = new LinkedList<Resource>(); Map<String, URL> sortLinks = new HashMap<String, URL>(); Pagination pagination; Sort sort; Map<String, List<Condition>> filters = new HashMap<String, List<Condition>>(); Map<String, Object> createDefaults = new HashMap<String, Object>(); @Override public String getType() { return type; } @Override public String getResourceType() { return resourceType; } @Override public Map<String, URL> getLinks() { if (!links.containsKey(UrlBuilder.SELF)) { URL self = ApiContext.getUrlBuilder().current(); if (self != null) { links.put(UrlBuilder.SELF, self); } } return links; } @Override public List<Resource> getData() { return data; } @Override public Map<String, URL> getCreateTypes() { return createTypes; } @Override public Map<String, URL> getActions() { return actions; } public void setType(String type) { this.type = type; } public void setResourceType(String resourceType) { this.resourceType = resourceType; } public void setLinks(Map<String, URL> links) { this.links = links; } public void setCreateTypes(Map<String, URL> createTypes) { this.createTypes = createTypes; } public void setActions(Map<String, URL> actions) { this.actions = actions; } public void setData(List<Resource> data) { this.data = data; } @Override public Map<String, URL> getSortLinks() { return sortLinks; } public void setSortLinks(Map<String, URL> sortLinks) { this.sortLinks = sortLinks; } @Override public Pagination getPagination() { return pagination; } public void setPagination(Pagination pagination) { this.pagination = pagination; } @Override public Sort getSort() { return sort; } public void setSort(Sort sort) { this.sort = sort; } @Override public Map<String, List<Condition>> getFilters() { return filters; } public void setFilters(Map<String, List<Condition>> filters) { this.filters = filters; } @Override public Map<String, Object> getCreateDefaults() { return createDefaults; } public void setCreateDefaults(Map<String, Object> createDefaults) { this.createDefaults = createDefaults; } }