// TestGraphDecorator1.java
package org.eclipse.stem.tests.util.decorators;

/*******************************************************************************
 * Copyright (c) 2006 IBM Corporation 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

import org.eclipse.stem.core.model.GraphDecorator;

/**
 * This interface represents the model of an abstract class in an EMF model that
 * is an example of a GraphDecorator implementation used for test purposes.
 * 
 * @model
 */
public interface TestGraphDecorator1 extends GraphDecorator {
	// Nothing
} // TestGraphDecorator1