/*
 * Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 *
 * This file has been automatically generated.  Please do not edit it manually.
 * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
 */
package org.dartlang.analysis.server.protocol;

/**
 * An enumeration of the kinds of elements.
 *
 * @coverage dart.server.generated.types
 */
public class ElementKind {

  public static final String CLASS = "CLASS";

  public static final String CLASS_TYPE_ALIAS = "CLASS_TYPE_ALIAS";

  public static final String COMPILATION_UNIT = "COMPILATION_UNIT";

  public static final String CONSTRUCTOR = "CONSTRUCTOR";

  public static final String CONSTRUCTOR_INVOCATION = "CONSTRUCTOR_INVOCATION";

  public static final String ENUM = "ENUM";

  public static final String ENUM_CONSTANT = "ENUM_CONSTANT";

  public static final String FIELD = "FIELD";

  public static final String FILE = "FILE";

  public static final String FUNCTION = "FUNCTION";

  public static final String FUNCTION_INVOCATION = "FUNCTION_INVOCATION";

  public static final String FUNCTION_TYPE_ALIAS = "FUNCTION_TYPE_ALIAS";

  public static final String GETTER = "GETTER";

  public static final String LABEL = "LABEL";

  public static final String LIBRARY = "LIBRARY";

  public static final String LOCAL_VARIABLE = "LOCAL_VARIABLE";

  public static final String METHOD = "METHOD";

  public static final String PARAMETER = "PARAMETER";

  public static final String PREFIX = "PREFIX";

  public static final String SETTER = "SETTER";

  public static final String TOP_LEVEL_VARIABLE = "TOP_LEVEL_VARIABLE";

  public static final String TYPE_PARAMETER = "TYPE_PARAMETER";

  public static final String UNIT_TEST_GROUP = "UNIT_TEST_GROUP";

  public static final String UNIT_TEST_TEST = "UNIT_TEST_TEST";

  public static final String UNKNOWN = "UNKNOWN";

}
