# /*
#  * <copyright>
#  *
#  * Copyright (c) 2007-2009 Metascape, LLC
#  * Copyright (c) 2006-2007 Argonne National Labs
#  * 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:
#  *   Argonne National Laboratory - Initial development (pre-contribution)
#  *   Metascape - Subsequent development and maintenance
#  *
#  * </copyright>
#  */

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = AMF Code Generator (Incubation)
providerName = Eclipse Agent Modeling Platform
