/*******************************************************************************
 * Copyright (c) 2005, 2006 committers of openArchitectureWare 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:
 *     committers of openArchitectureWare - initial API and implementation
 *******************************************************************************/
package org.eclipse.gmf.internal.xpand.model;

import org.eclipse.gmf.internal.xpand.expression.ast.DeclaredParameter;

public interface XpandDefinition {

    XpandResource getOwner();

    void evaluate(XpandExecutionContext ctx);

    DeclaredParameter[] getParams();

    String getTargetType();

    String getName();

}
