/*********************************************************************
 * Copyright (c) 2015 GianMaria Romanato
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
**********************************************************************/

package org.eclipse.virgo.ide.ui.wizards;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {

    private static final String BUNDLE_NAME = "org.eclipse.virgo.ide.ui.wizards.messages"; //$NON-NLS-1$

    public static String AbstractPropertiesPage_description;

    public static String AbstractPropertiesPage_description2;

    public static String AbstractPropertiesPage_title;

    public static String NewBundleInformationPage_Additional_Properties;

    public static String NewBundleInformationPage_Classpath_Management;

    public static String NewBundleInformationPage_enable_container;

    public static String NewBundleInformationPage_WAB;

    public static String NewBundleProjectSettingsPage_DESCRIPTION;

    public static String NewBundleProjectSettingsPage_TITLE;

    public static String NewBundleProjectWizard_title;

    public static String NewParProjectReferencePage_desc;

    public static String NewParProjectReferencePage_title;

    public static String NewParProjectSettingsPage_DESCRIPTION;

    public static String NewParProjectSettingsPage_TITLE;

    public static String NewParProjectWizard_title;

    public static String NewPDEProjectWABPage_context_root;

    public static String NewPDEProjectWABPage_description;

    public static String NewPDEProjectWABPage_title;

    public static String NewPDEProjectWizard_title;

    public static String NewPlanProjectFilePage_atomic_label;

    public static String NewPlanProjectFilePage_scoped_label;

    public static String NewPlanProjectNamePage_description;

    public static String NewPlanProjectNamePage_plan_label;

    public static String NewPlanProjectNamePage_title;

    public static String NewPlanProjectWizard_title;

    public static String ProjectContentPageStrings_bundle_content;

    public static String ProjectContentPageStrings_bundle_content_desc;

    public static String ProjectContentPageStrings_bundle_desc;

    public static String ProjectContentPageStrings_bundle_name;

    public static String ProjectContentPageStrings_bundle_plugin;

    public static String ProjectContentPageStrings_bundle_properties;

    public static String ProjectContentPageStrings_bundle_version;

    public static String ProjectContentPageStrings_par_content;

    public static String ProjectContentPageStrings_par_content_desc;

    public static String ProjectContentPageStrings_par_desc;

    public static String ProjectContentPageStrings_par_name;

    public static String ProjectContentPageStrings_par_plugin;

    public static String ProjectContentPageStrings_par_prorperties;

    public static String ProjectContentPageStrings_par_symb_name;

    public static String ProjectContentPageStrings_par_version;

    public static String ProjectContentPageStrings_symb_name;

    public static String WebModulePropertiesPage_context_path;

    public static String WebModulePropertiesPage_text;

    static {
        // initialize resource bundle
        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
    }

    private Messages() {
    }
}
