package org.jetbrains.plugins.clojure.debugger.fragments;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.clojure.psi.api.ClList;
import org.jetbrains.plugins.clojure.psi.api.ns.ClNs;
import org.jetbrains.plugins.clojure.psi.impl.ClojureFileImpl;
import org.jetbrains.plugins.clojure.file.ClojureFileType;
import org.jetbrains.annotations.NonNls;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.openapi.project.Project;
import com.intellij.testFramework.LightVirtualFile;
import javax.naming.OperationNotSupportedException;
/**
* @author ilyas
*/
public class ClojureCodeFragment extends ClojureFileImpl implements JavaCodeFragment{
private PsiType myThisType;
private PsiType mySuperType;
private ExceptionHandler myExceptionHandler;
private IntentionFilterOwner.IntentionActionsFilter myFilter;
private GlobalSearchScope myScope;
public ClojureCodeFragment(Project project, CharSequence text) {
super(new SingleRootFileViewProvider(PsiManager.getInstance(project),
new LightVirtualFile(
"ClojureDebugFile.clj",
ClojureFileType.CLOJURE_FILE_TYPE,
text), true));
((SingleRootFileViewProvider) getViewProvider()).forceCachedPsi(this);
}
public PsiType getThisType() {
return myThisType;
}
public void setThisType(PsiType psiType) {
myThisType = psiType;
}
public PsiType getSuperType() {
return mySuperType;
}
public void setSuperType(PsiType superType) {
mySuperType = superType;
}
public String importsToString() {
return "";
}
public void addImportsFromString(String imports) {
}
public void setVisibilityChecker(VisibilityChecker checker) {
}
public VisibilityChecker getVisibilityChecker() {
return VisibilityChecker.EVERYTHING_VISIBLE;
}
public void setExceptionHandler(ExceptionHandler checker) {
myExceptionHandler= checker;
}
public ExceptionHandler getExceptionHandler() {
return myExceptionHandler;
}
public boolean importClass(PsiClass aClass) {
return false;
}
public void setIntentionActionsFilter(IntentionFilterOwner.IntentionActionsFilter filter) {
myFilter = filter;
}
public IntentionFilterOwner.IntentionActionsFilter getIntentionActionsFilter() {
return myFilter;
}
public void forceResolveScope(GlobalSearchScope scope) {
myScope = scope;
}
public GlobalSearchScope getForcedResolveScope() {
return myScope;
}
public boolean isClassDefiningFile() {
return false;
}
public String getNamespace() {
return null;
}
@NotNull
public ClNs findOrCreateNamespaceElement() throws IncorrectOperationException {
throw new IncorrectOperationException("creating imports is not supported in this element");
}
public String getClassName() {
return null;
}
public PsiElement setClassName(@NonNls String s) {
return null;
}
public void addImportForClass(PsiClass clazz) {
//todo:
}
}