/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Created on Jan 14, 2006
*/
package org.python.pydev.core;
import java.util.List;
import org.python.pydev.core.structure.CompletionRecursionException;
public interface ICompletionState extends ICompletionCache {
String getActivationToken();
String getFullActivationToken();
IPythonNature getNature();
ICompletionState getCopy();
/**
* This is the activation token with callables changed to the reference.
*
* E.g.: if we had Grinder.grinder.getLogger(), this would be: Grinder.grinder.getLogger
* And if we had x.ClassA(), this would be x.ClassA
*/
void setActivationToken(String act);
/**
* This is the full activation token (e.g.: Grinder.grinder.getLogger().getIt())
* Only actually set if the activation token changes.
* Note that it's only used to pass on to the java completion engine.
*/
void setFullActivationToken(String act);
void setBuiltinsGotten(boolean b);
void raiseNFindTokensOnImportedModsCalled(IModule mod, String tok) throws CompletionRecursionException;
/**
* @param i: starting at 0
*/
void setCol(int i);
/**
* @param i: starting at 0
*/
void setLine(int i);
void setLocalImportsGotten(boolean b);
boolean getLocalImportsGotten();
/**
* @return the line for the request (starting at 0)
*/
int getLine();
/**
* @return the col for the request (starting at 0)
*/
int getCol();
void checkDefinitionMemory(IModule module, IDefinition definition) throws CompletionRecursionException;
void checkWildImportInMemory(IModule current, IModule mod) throws CompletionRecursionException;
public void checkResolveImportMemory(IModule module, String value) throws CompletionRecursionException;
boolean getBuiltinsGotten();
void checkMemory(IModule module, String base) throws CompletionRecursionException;
void checkFindMemory(IModule module, String value) throws CompletionRecursionException;
void checkFindDefinitionMemory(IModule mod, String tok) throws CompletionRecursionException;
void checkFindLocalDefinedDefinitionMemory(IModule mod, String tok) throws CompletionRecursionException;
void checkFindModuleCompletionsMemory(IModule mod, String tok) throws CompletionRecursionException;
void checkFindResolveImportMemory(IToken tok) throws CompletionRecursionException;
/**
* Doesn't throw an exception, returns true if the given line and column have already been found previously.
*/
boolean checkFoudSameDefinition(int line, int col, IModule mod);
/**
* Unlike other checks, it won't throw an exception, but'll see if the given module was already checked for
* a given token (this happens when we're looking for a token that has been found in a compiled module and
* we want to translate to an actual position... but if we loop for some reason, it has to be stopped and
* the actual compiled module is the source of the definition).
*/
boolean canStillCheckFindSourceFromCompiled(IModule mod, String tok);
boolean getIsInCalltip();
public static final int LOOKING_FOR_INSTANCE_UNDEFINED = 0;
public static final int LOOKING_FOR_INSTANCED_VARIABLE = 1;
public static final int LOOKING_FOR_UNBOUND_VARIABLE = 2;
public static final int LOOKING_FOR_CLASSMETHOD_VARIABLE = 3;
public static final int LOOKING_FOR_ASSIGN = 4;
/**
* Identifies if we should be looking for an instance (in which case, self should not
* be added to the parameters -- otherwise, it should)
*/
void setLookingFor(int lookingFor);
/**
* Used so that we can force it...
*/
void setLookingFor(int lookingFor, boolean force);
ICompletionState getCopyWithActTok(String value);
String getQualifier();
int getLookingFor();
void setIsInCalltip(boolean isInCalltip);
ICompletionState getCopyForResolveImportWithActTok(String representation);
void pushFindResolveImportMemoryCtx();
void popFindResolveImportMemoryCtx();
/**
* This method will save the list with the tokens for the imported modules.
*
* The attribute that stores it will not be copied when a copy is gotten.
* If already set, this function should not override a previous value.
*/
void setTokenImportedModules(List<IToken> tokenImportedModules);
/**
* May be null
*/
public List<IToken> getTokenImportedModules();
}