/*
 * Copyright (c) 2014, 2015 Eike Stepper (Loehne, Germany) and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *    Eike Stepper - initial API and implementation
 */
package org.eclipse.oomph.setup;

/**
 * @author Eike Stepper
 */
public final class AnnotationConstants
{
  public static final String ANNOTATION_BRANDING_INFO = "http://www.eclipse.org/oomph/setup/BrandingInfo";

  public static final String KEY_URI = "uri";

  public static final String KEY_IMAGE_URI = "imageURI";

  public static final String KEY_README_PATH = "readmePath";

  public static final String KEY_FOLDER_NAME = "folderName";

  public static final String KEY_SITE_URI = "siteURI";

  public static final String ANNOTATION_STATS_SENDING = "http://www.eclipse.org/oomph/setup/StatsSending";

  public static final String ANNOTATION_USER_PREFERENCES = "http://www.eclipse.org/oomph/setup/UserPreferences";

  public static final String ANNOTATION_INHERITED_CHOICES = "http://www.eclipse.org/oomph/setup/InheritedChoices";

  public static final String ANNOTATION_INDUCED_CHOICES = "http://www.eclipse.org/oomph/setup/InducedChoices";

  public static final String ANNOTATION_MATCH_CHOICE = "http://www.eclipse.org/oomph/setup/MatchChoice";

  public static final String ANNOTATION_FEATURE_SUBSTITUTION = "http://www.eclipse.org/oomph/setup/FeatureSubstitution";

  public static final String ANNOTATION_PASSWORD_VERIFICATION = "http://www.eclipse.org/oomph/setup/PasswordVerification";

  public static final String ANNOTATION_GLOBAL_VARIABLE = "http://www.eclipse.org/oomph/setup/GlobalVariable";

  public static final String ANNOTATION_UNDECLARED_VARIABLE = "http://www.eclipse.org/oomph/setup/UndeclaredVariable";

  public static final String KEY_INHERIT = "inherit";

  public static final String KEY_TARGET = "target";

  public static final String KEY_LABEL = "label";

  public static final String KEY_DESCRIPTION = "description";

  private AnnotationConstants()
  {
  }
}
