/**
 * 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.ecview.core.common.context;

public class ConfigurationAdapter implements IConfiguration {

	@Override
	public void beforeUiRendering(IContext context) {

	}

	@Override
	public void afterUiRendering(IContext context) {

	}

	@Override
	public void beforeBind(IContext context) {

	}

	@Override
	public void afterBind(IContext context) {

	}

}
