/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.core.user.impl;
import java.net.URI;
import com.opengamma.core.change.ChangeManager;
import com.opengamma.core.change.DummyChangeManager;
import com.opengamma.core.user.UserAccount;
import com.opengamma.core.user.UserSource;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.rest.AbstractRemoteClient;
/**
* Provides remote access to an {@link UserSource}.
*/
public class RemoteUserSource extends AbstractRemoteClient implements UserSource {
private final ChangeManager _changeManager;
/**
* Creates an instance.
*
* @param baseUri the base target URI for all RESTful web services, not null
*/
public RemoteUserSource(final URI baseUri) {
this(baseUri, DummyChangeManager.INSTANCE);
}
public RemoteUserSource(final URI baseUri, final ChangeManager changeManager) {
super(baseUri);
ArgumentChecker.notNull(changeManager, "changeManager");
_changeManager = changeManager;
}
//-------------------------------------------------------------------------
@Override
public UserAccount getAccount(String userName) {
ArgumentChecker.notNull(userName, "userName");
URI uri = DataUserSourceResource.uriUserByName(getBaseUri(), userName);
return accessRemote(uri).get(UserAccount.class);
}
//-------------------------------------------------------------------------
@Override
public ChangeManager changeManager() {
return _changeManager;
}
}