blob: 43819a323d939a5c96c1a2607bbe9bbf990000c5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Edgar Mueller - initial API and implementation
******************************************************************************/
package org.eclipse.emf.emfstore.client.test.common.builders;
import org.eclipse.emf.emfstore.client.ESServer;
import org.eclipse.emf.emfstore.client.test.common.builders.BOOL.FALSE;
import org.eclipse.emf.emfstore.client.test.common.builders.BOOL.TRUE;
// TODO: make builder type safe
public final class UserBuilder<A, B, C> {
private final ESServer server;
private final String userName;
private final String password;
private UserBuilder(String name, String password, ESServer server) {
userName = name;
this.password = password;
this.server = server;
}
public ESServer getServer() {
return server;
}
public String getUsername() {
return userName;
}
public String getPassword() {
return password;
}
public static UserBuilder<FALSE, FALSE, FALSE> create() {
return new UserBuilder<FALSE, FALSE, FALSE>(null, null, null);
}
public <XB, XC> UserBuilder<TRUE, XB, XC> withName(String name) {
return new UserBuilder<TRUE, XB, XC>(name, password, server);
}
public <XA, XC> UserBuilder<XA, TRUE, XC> withPassword(String password) {
return new UserBuilder<XA, TRUE, XC>(userName, password, server);
}
// public <XA, XC, XD> UserBuilder<XA, TRUE, XC, XD> withRole(EClass role) {
// return new UserBuilder<XA, TRUE, XC, XD>(this.userName, role, this.id, this.server);
// }
// public <XA, XB, XD> UserBuilder<XA, XB, TRUE, XD> forProject(ProjectId projectId) {
// return new UserBuilder<XA, XB, TRUE, XD>(this.userName, this.role, projectId, this.server);
// }
public <XA, XB> UserBuilder<XA, XB, TRUE> onServer(ESServer server) {
return new UserBuilder<XA, XB, TRUE>(this.userName, password, server);
}
}