package org.jetbrains.plugins.clojure.psi.stubs.impl;
import com.intellij.psi.stubs.PsiFileStubImpl;
import com.intellij.psi.tree.IStubFileElementType;
import com.intellij.util.io.StringRef;
import org.jetbrains.plugins.clojure.parser.ClojureElementTypes;
import org.jetbrains.plugins.clojure.psi.api.ClojureFile;
import org.jetbrains.plugins.clojure.psi.stubs.api.ClFileStub;
/**
* @author ilyas
*/
public class ClFileStubImpl extends PsiFileStubImpl<ClojureFile> implements ClFileStub {
private final StringRef myPackageName;
private final StringRef myClassName;
private final boolean isClassDefinition;
public ClFileStubImpl(ClojureFile file) {
super(file);
myPackageName = StringRef.fromString(file.getPackageName());
isClassDefinition = file.isClassDefiningFile();
myClassName = StringRef.fromString(file.getClassName());
}
public ClFileStubImpl(StringRef packName, StringRef name, boolean isScript) {
super(null);
myPackageName = packName;
myClassName = name;
this.isClassDefinition = isScript;
}
public IStubFileElementType getType() {
return ClojureElementTypes.FILE;
}
public StringRef getPackageName() {
return myPackageName;
}
public StringRef getClassName() {
return myClassName;
}
public boolean isClassDefinition() {
return isClassDefinition;
}
}