/*
 * Copyright (c) 2010, 2012 JBoss, Inc. 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
 */
package org.eclipse.bpel.ui.adapters;

/*
 * This is the extensionActivity adapter
 *
 * @see Bugzilla 324115
 * @author Bob Brodt
 * @date Aug 27, 2010
 */
public class ExtensionActivityAdapter extends ActivityAdapter {

	public ExtensionActivityAdapter()
	{
		super();
	}
}
