/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.engine.internal.element; /** * The enumeration {@code Modifier} defines constants for all of the modifiers defined by the Dart * language and for a few additional flags that are useful. * * @coverage dart.engine.element */ public enum Modifier { /** * Indicates that the modifier 'abstract' was applied to the element. */ ABSTRACT, /** * Indicates that an executable element has a body marked as being asynchronous. */ ASYNCHRONOUS, /** * Indicates that the modifier 'const' was applied to the element. */ CONST, /** * Indicates that the import element represents a deferred library. */ DEFERRED, /** * Indicates that a class element was defined by an enum declaration. */ ENUM, /** * Indicates that the modifier 'factory' was applied to the element. */ FACTORY, /** * Indicates that the modifier 'final' was applied to the element. */ FINAL, /** * Indicates that an executable element has a body marked as being a generator. */ GENERATOR, /** * Indicates that the pseudo-modifier 'get' was applied to the element. */ GETTER, /** * A flag used for libraries indicating that the defining compilation unit contains at least one * import directive whose URI uses the "dart-ext" scheme. */ HAS_EXT_URI, /** * Indicates that a class can validly be used as a mixin. */ MIXIN, /** * Indicates that the value of a parameter or local variable might be mutated within the context. */ POTENTIALLY_MUTATED_IN_CONTEXT, /** * Indicates that the value of a parameter or local variable might be mutated within the scope. */ POTENTIALLY_MUTATED_IN_SCOPE, /** * Indicates that a class contains an explicit reference to 'super'. */ REFERENCES_SUPER, /** * Indicates that the pseudo-modifier 'set' was applied to the element. */ SETTER, /** * Indicates that the modifier 'static' was applied to the element. */ STATIC, /** * Indicates that the element does not appear in the source code but was implicitly created. For * example, if a class does not define any constructors, an implicit zero-argument constructor * will be created and it will be marked as being synthetic. */ SYNTHETIC, /** * Indicates that a class was defined using an alias. TODO(brianwilkerson) This should be renamed * to 'ALIAS'. */ TYPEDEF; }