# NLS_MESSAGEFORMAT_VAR          needed to handle quotes correctly
# ====================================================================

# ====================================================================
# $Id: plugin.properties,v 1.4 2006/05/10 14:30:22 jgraham Exp $
# @generated NOT
# ====================================================================

# ====================================================================
# 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 = Eclipse Data Tools Platform SQL Query Model Plugin
nl1PluginName = SQL Query Model Nl1 Fragment
providerName = Eclipse Data Tools Platform

