All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.pmd.lang.modelica.resolver.ModelicaScope Maven / Gradle / Ivy

The newest version!
/**
 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
 */

package net.sourceforge.pmd.lang.modelica.resolver;

import java.util.List;

import net.sourceforge.pmd.lang.modelica.resolver.internal.ResolutionState;

/**
 * A lexical scope of Modelica code.
 * That is, a component declaration does not have one, it is its type that does (but these may be resolved to multiple
 * classes or not resolved at all, these classes generally reside in other files, etc.)
 *
 * Please do not confuse this with {@link SubcomponentResolver} that represents "view from the outside" on something
 * possibly looked up from other file via component reference.
 */
public interface ModelicaScope {
    /**
     * Returns the declarations that were lexically declared in this scope.
     */
    List getContainedDeclarations();

    /**
     * Resolves a name as if it is written inside this lexical scope in a file.
     */
     ResolutionResult safeResolveLexically(Class clazz, ResolutionState state, CompositeName name);

    /**
     * Returns the parent (i.e., containing) scope.
     */
    ModelicaScope getParent();

    RootScope getRoot();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy