/* * 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.Organization; import com.smartitengineering.user.client.api.OrganizationResource; import com.smartitengineering.user.client.api.PrivilegesResource; import com.smartitengineering.user.client.api.SecuredObjectsResource; import com.smartitengineering.user.client.api.UserGroupsResource; import com.smartitengineering.user.client.api.UsersResource; import com.smartitengineering.util.rest.atom.AbstractFeedClientResource; import com.smartitengineering.util.rest.atom.AtomClientUtil; 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 */ class OrganizationResourceImpl extends AbstractFeedClientResource<Resource<? extends Feed>> implements OrganizationResource { public static final String REL_USER_GROUPS = "usergroups"; public static final String REL_ORGS = "organizations"; public static final String REL_ORG = "Organization"; public static final String REL_ALT = "alternate"; public static final String REL_USERS = "users"; public static final String REL_PRIVILEGES = "privileges"; public static final String REL_SECUREDOBJECTS = "securedobjects"; public OrganizationResourceImpl(ResourceLink orgLink, Resource referrer) { super(referrer, orgLink); final ResourceLink altLink = getRelatedResourceUris().getFirst(Link.REL_ALTERNATE); System.out.println("get Uri--------------------- " + altLink.getUri()); System.out.println("get mime type --------------" + altLink.getMimeType()); addNestedResource(REL_ORG, new SimpleResourceImpl<com.smartitengineering.user.client.impl.domain.Organization>( this, altLink.getUri(), altLink.getMimeType(), com.smartitengineering.user.client.impl.domain.Organization.class, null, false, null, null)); } @Override public UsersResource getUsersResource() { return new UsersResourceImpl(getRelatedResourceUris().getFirst(REL_USERS), this); } @Override public SecuredObjectsResource getSecuredObjectsResource() { return new SecuredObjectsResourceImpl(getRelatedResourceUris().getFirst(REL_SECUREDOBJECTS), this); } @Override public PrivilegesResource getPrivilegesResource() { return new PrivilegesResourceImpl(getRelatedResourceUris().getFirst(REL_PRIVILEGES), this); } @Override public Organization getOrganization() { return getOrganization(false); } @Override public Organization getOrganizationReloaded() { return getOrganization(true); } protected Organization getOrganization(boolean reload) { Resource<Organization> organization = super.<Organization>getNestedResource(REL_ORG); if (reload) { return organization.get(); } else { return organization.getLastReadStateOfEntity(); } } @Override protected void processClientConfig(ClientConfig clientConfig) { } @Override protected Resource<? extends Feed> instantiatePageableResource(ResourceLink link) { return null; } @Override public void update() { put(MediaType.APPLICATION_JSON, getOrganization(), ClientResponse.Status.OK, ClientResponse.Status.SEE_OTHER, ClientResponse.Status.FOUND); } @Override public UserGroupsResource getUserGroupsResource() { return new UserGroupsResourceImpl(getRelatedResourceUris().getFirst(REL_USER_GROUPS), this); } }