package org.jetbrains.plugins.clojure.psi.impl.ns; import com.intellij.lang.ASTNode; import com.intellij.psi.stubs.IStubElementType; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol; import org.jetbrains.plugins.clojure.psi.api.ClQuotedForm; import org.jetbrains.plugins.clojure.psi.stubs.api.ClNsStub; import org.jetbrains.plugins.clojure.psi.util.ClojurePsiUtil; import org.jetbrains.plugins.clojure.psi.ClojurePsiElement; /** * @author ilyas */ public class ClInNsImpl extends ClNsImpl{ public ClInNsImpl(ClNsStub stub, @NotNull IStubElementType nodeType) { super(stub, nodeType); } public ClInNsImpl(ASTNode node) { super(node); } @Override @Nullable public ClSymbol getNameSymbol() { final PsiElement element = getSecondNonLeafElement(); if (element instanceof ClQuotedForm) { final ClQuotedForm form = (ClQuotedForm) element; final ClojurePsiElement elt = form.getQuotedElement(); if (elt instanceof ClSymbol) { return (ClSymbol) elt; } return null; } return null; } }