/*****************************************************************************
* All public interface based on Starteam API are a property of Borland,
* those interface are reproduced here only for testing purpose. You should
* never use those interface to create a competitive product to the Starteam
* Server.
*
* The implementation is given AS-IS and should not be considered a reference
* to the API. The behavior on a lots of method and class will not be the
* same as the real API. The reproduction only seek to mimic some basic
* operation. You will not found anything here that can be deduced by using
* the real API.
*
* Fake-Starteam is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************/
package org.ossnoize.fakestarteam;
import java.util.HashMap;
import java.util.Map;
import com.starbase.starteam.UserAccount;
public class UserAccountProvider {
private static UserAccountProvider Reference = null;
public static UserAccountProvider getInstance() {
if(Reference == null) {
Reference = new UserAccountProvider();
}
return Reference;
}
public static void deleteInstance() {
Reference = null;
}
private Map<Integer, UserAccount> accounts = new HashMap<Integer, UserAccount>();
private UserAccountProvider() {
}
public void addUserAccount(Integer uid) {
if (accounts.containsKey(uid)) {
throw new Error("Duplicate user id " + uid);
}
accounts.put(uid, new FakeUserAccount(uid));
}
public boolean deleteUserAccount(int id) {
if (accounts.containsKey(id)) {
accounts.remove(id);
return true;
}
return false;
}
public UserAccount getUserAccount(Integer uid) {
if(null == uid)
return null;
return accounts.get(uid);
}
}