/*
* Copyright (c) 2013, 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.index;
import com.google.dart.engine.element.Element;
import com.google.dart.engine.element.angular.AngularElement;
import com.google.dart.engine.index.Relationship;
import com.google.dart.engine.index.UniverseElement;
/**
* Constants used when populating and accessing the index.
*
* @coverage dart.engine.index
*/
public interface IndexConstants {
// /**
// * An {@link Resource} for unresolved elements.
// */
// Resource DYNAMIC = new Resource("--dynamic--");
/**
* An element used to represent the universe.
*/
Element UNIVERSE = UniverseElement.INSTANCE;
/**
* The relationship used to indicate that a container (the left-operand) contains the definition
* of a class at a specific location (the right operand).
*/
Relationship DEFINES_CLASS = Relationship.getRelationship("defines-class");
// /**
// * The relationship used to indicate that a container (the left-operand) contains the definition
// * of a field at a specific location (the right operand).
// */
// Relationship DEFINES_FIELD = Relationship.getRelationship("defines-field");
/**
* The relationship used to indicate that a container (the left-operand) contains the definition
* of a function at a specific location (the right operand).
*/
Relationship DEFINES_FUNCTION = Relationship.getRelationship("defines-function");
/**
* The relationship used to indicate that a container (the left-operand) contains the definition
* of a class type alias at a specific location (the right operand).
*/
Relationship DEFINES_CLASS_ALIAS = Relationship.getRelationship("defines-class-alias");
/**
* The relationship used to indicate that a container (the left-operand) contains the definition
* of a function type at a specific location (the right operand).
*/
Relationship DEFINES_FUNCTION_TYPE = Relationship.getRelationship("defines-function-type");
// /**
// * The relationship used to indicate that a container (the left-operand) contains the definition
// * of a method at a specific location (the right operand).
// */
// Relationship DEFINES_METHOD = Relationship.getRelationship("defines-method");
/**
* The relationship used to indicate that a container (the left-operand) contains the definition
* of a method at a specific location (the right operand).
*/
Relationship DEFINES_VARIABLE = Relationship.getRelationship("defines-variable");
// /**
// * The relationship used to indicate that a type (the left-operand) extends (subtypes) a type at a
// * specific location (the right operand).
// */
// Relationship EXTENDS = Relationship.getRelationship("extends");
// /**
// * The relationship used to indicate that a type (the left-operand) implements a type at a
// * specific location (the right operand).
// */
// Relationship IMPLEMENTS = Relationship.getRelationship("implements");
/**
* The relationship used to indicate that a name (the left-operand) is defined at a specific
* location (the right operand).
*/
Relationship IS_DEFINED_BY = Relationship.getRelationship("is-defined-by");
/**
* The relationship used to indicate that a type (the left-operand) is extended by a type at a
* specific location (the right operand).
*/
Relationship IS_EXTENDED_BY = Relationship.getRelationship("is-extended-by");
/**
* The relationship used to indicate that a type (the left-operand) is implemented by a type at a
* specific location (the right operand).
*/
Relationship IS_IMPLEMENTED_BY = Relationship.getRelationship("is-implemented-by");
/**
* The relationship used to indicate that a type (the left-operand) is mixed into a type at a
* specific location (the right operand).
*/
Relationship IS_MIXED_IN_BY = Relationship.getRelationship("is-mixed-in-by");
/**
* The relationship used to indicate that a parameter or variable (the left-operand) is read at a
* specific location (the right operand).
*/
Relationship IS_READ_BY = Relationship.getRelationship("is-read-by");
/**
* The relationship used to indicate that a parameter or variable (the left-operand) is both read
* and modified at a specific location (the right operand).
*/
Relationship IS_READ_WRITTEN_BY = Relationship.getRelationship("is-read-written-by");
/**
* The relationship used to indicate that a parameter or variable (the left-operand) is modified
* (assigned to) at a specific location (the right operand).
*/
Relationship IS_WRITTEN_BY = Relationship.getRelationship("is-written-by");
// /**
// * The relationship used to indicate that a method (the left-operand) is overridden by a method at
// * a specific location (the right operand).
// */
// Relationship IS_OVERRIDDEN_BY = Relationship.getRelationship("is-overridden-by");
/**
* The relationship used to indicate that an element (the left-operand) is referenced at a
* specific location (the right operand). This is used for everything except read/write operations
* for fields, parameters, and variables. Those use either {@link #IS_REFERENCED_BY_QUALIFIED},
* {@link #IS_REFERENCED_BY_UNQUALIFIED}, {@link #IS_READ_BY}, {@link #IS_WRITTEN_BY} or
* {@link #IS_READ_WRITTEN_BY}, as appropriate.
*/
Relationship IS_REFERENCED_BY = Relationship.getRelationship("is-referenced-by");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is
* referenced at a specific location (the right operand). This is used for qualified resolved
* references to methods and fields.
*/
Relationship IS_REFERENCED_BY_QUALIFIED_RESOLVED = Relationship.getRelationship("is-referenced-by-qualified-resolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is
* referenced at a specific location (the right operand). This is used for qualified unresolved
* references to methods and fields.
*/
Relationship IS_REFERENCED_BY_QUALIFIED_UNRESOLVED = Relationship.getRelationship("is-referenced-by-qualified-unresolved");
/**
* The relationship used to indicate that an element (the left-operand) is referenced at a
* specific location (the right operand). This is used for field accessors and methods.
*/
Relationship IS_REFERENCED_BY_QUALIFIED = Relationship.getRelationship("is-referenced-by-qualified");
/**
* The relationship used to indicate that an element (the left-operand) is referenced at a
* specific location (the right operand). This is used for field accessors and methods.
*/
Relationship IS_REFERENCED_BY_UNQUALIFIED = Relationship.getRelationship("is-referenced-by-unqualified");
/**
* The relationship used to indicate that an element (the left-operand) is invoked at a specific
* location (the right operand). This is used for functions.
*/
Relationship IS_INVOKED_BY = Relationship.getRelationship("is-invoked-by");
/**
* The relationship used to indicate that an element (the left-operand) is invoked at a specific
* location (the right operand). This is used for methods.
*/
Relationship IS_INVOKED_BY_QUALIFIED = Relationship.getRelationship("is-invoked-by-qualified");
/**
* The relationship used to indicate that an element (the left-operand) is invoked at a specific
* location (the right operand). This is used for methods.
*/
Relationship IS_INVOKED_BY_UNQUALIFIED = Relationship.getRelationship("is-invoked-by-unqualified");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is invoked
* at a specific location (the right operand). This is used for resolved invocations.
*/
Relationship NAME_IS_INVOKED_BY_RESOLVED = Relationship.getRelationship("name-is-invoked-by-resolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is read at
* a specific location (the right operand).
*/
Relationship NAME_IS_READ_BY_RESOLVED = Relationship.getRelationship("name-is-read-by-resolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is both
* read and written at a specific location (the right operand).
*/
Relationship NAME_IS_READ_WRITTEN_BY_RESOLVED = Relationship.getRelationship("name-is-read-written-by-resolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is written
* at a specific location (the right operand).
*/
Relationship NAME_IS_WRITTEN_BY_RESOLVED = Relationship.getRelationship("name-is-written-by-resolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is invoked
* at a specific location (the right operand). This is used for unresolved invocations.
*/
Relationship NAME_IS_INVOKED_BY_UNRESOLVED = Relationship.getRelationship("name-is-invoked-by-unresolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is read at
* a specific location (the right operand).
*/
Relationship NAME_IS_READ_BY_UNRESOLVED = Relationship.getRelationship("name-is-read-by-unresolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is both
* read and written at a specific location (the right operand).
*/
Relationship NAME_IS_READ_WRITTEN_BY_UNRESOLVED = Relationship.getRelationship("name-is-read-written-by-unresolved");
/**
* The relationship used to indicate that an {@link NameElementImpl} (the left-operand) is written
* at a specific location (the right operand).
*/
Relationship NAME_IS_WRITTEN_BY_UNRESOLVED = Relationship.getRelationship("name-is-written-by-unresolved");
/**
* Reference to some {@link AngularElement}.
*/
Relationship ANGULAR_REFERENCE = Relationship.getRelationship("angular-reference");
/**
* Reference to some closing tag of an XML element.
*/
Relationship ANGULAR_CLOSING_TAG_REFERENCE = Relationship.getRelationship("angular-closing-tag-reference");
}