/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.smartitengineering.user.client.impl; import com.smartitengineering.user.client.api.OrganizationResource; import com.smartitengineering.user.client.api.Privilege; import com.smartitengineering.user.client.api.PrivilegeResource; import com.smartitengineering.util.rest.atom.AbstractFeedClientResource; import com.smartitengineering.util.rest.client.Resource; import com.smartitengineering.util.rest.client.ResourceLink; import com.smartitengineering.util.rest.client.SimpleResourceImpl; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.config.ClientConfig; import javax.ws.rs.core.MediaType; import org.apache.abdera.model.Feed; import org.apache.abdera.model.Link; /** * * @author russel */ public class PrivilegeResourceImpl extends AbstractFeedClientResource<Resource<? extends Feed>> implements PrivilegeResource { public static final String REL_PRIV = "privilege-content"; public PrivilegeResourceImpl(ResourceLink privLink, Resource referrer) { super(referrer, privLink); final ResourceLink altLink = getRelatedResourceUris().getFirst(Link.REL_ALTERNATE); addNestedResource(REL_PRIV, new SimpleResourceImpl<com.smartitengineering.user.client.impl.domain.Privilege>( this, altLink.getUri(), altLink.getMimeType(), com.smartitengineering.user.client.impl.domain.Privilege.class, null, false, null, null)); } @Override protected void processClientConfig(ClientConfig clientConfig) { } @Override protected Resource<? extends Feed> instantiatePageableResource(ResourceLink link) { return null; } @Override public Privilege getPrivilege() { return getPrivilege(false); } @Override public OrganizationResource getOrganizationResource() { throw new UnsupportedOperationException("Not supported yet."); } @Override public void update() { put(MediaType.APPLICATION_JSON, getPrivilege(), ClientResponse.Status.OK, ClientResponse.Status.SEE_OTHER, ClientResponse.Status.FOUND); } protected Privilege getPrivilege(boolean reload) { Resource<Privilege> privilege = super.<Privilege>getNestedResource(REL_PRIV); if(reload){ return privilege.get(); } else{ return privilege.getLastReadStateOfEntity(); } } }