/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
 * 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:
 *         Florian Pirchner - Initial implementation
 */

package org.eclipse.osbp.runtime.web.common.context;

import org.eclipse.osbp.runtime.common.user.IUserInfo;


public abstract class AbstractUserInfo implements IUserInfo {

	private final String userId;

	AbstractUserInfo(String userId) {
		this.userId = userId;
	}

	@Override
	public String getId() {
		return userId;
	}

}
