/*
* 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.UserLinkResource;
import com.smartitengineering.user.client.api.UserResource;
import com.smartitengineering.util.rest.atom.AbstractFeedClientResource;
import com.smartitengineering.util.rest.client.Resource;
import com.smartitengineering.util.rest.client.ResourceLink;
import com.sun.jersey.api.client.config.ClientConfig;
import java.net.URI;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriBuilderException;
import org.apache.abdera.model.Feed;
/**
*
* @author modhu7
*/
public class UserLinkResourceImpl extends AbstractFeedClientResource<Resource<? extends Feed>> implements
UserLinkResource {
public static final String REL_USER_LINK = "userLink";
public UserLinkResourceImpl(ResourceLink userGetterLink, String username, Resource referrer) {
super(referrer, getSelfUri(userGetterLink, username));
}
@Override
protected void processClientConfig(ClientConfig clientConfig) {
}
@Override
protected Resource<? extends Feed> instantiatePageableResource(ResourceLink link) {
return null;
}
@Override
public UserResource getUserResource() {
return new UserResourceImpl(getRelatedResourceUris().getFirst(REL_USER_LINK), this);
}
protected static URI getSelfUri(ResourceLink userGetterLink,
String username)
throws IllegalArgumentException,
UriBuilderException {
URI UserLinkResourUri =
UriBuilder.fromUri(userGetterLink.getUri().toString()).queryParam("username", username).
build();
return UserLinkResourUri;
}
}