package com.igormaznitsa.ideamindmap.lang.psi;
import com.igormaznitsa.mindmap.model.Extra;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiNamedElement;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NonNls;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class PsiExtraType extends ASTWrapperPsiElement implements PsiNamedElement, MMPsiElement {
private final Extra.ExtraType type;
public PsiExtraType(@Nonnull final ASTNode node) {
super(node);
final String text = node.getText();
Extra.ExtraType result;
if (text.length() > 1) {
try {
result = Extra.ExtraType.valueOf(text.substring(1).trim());
}catch (IllegalArgumentException ex){
result = null;
}
}else{
result = null;
}
this.type = result;
}
@Nullable
public Extra.ExtraType getType(){
return type;
}
@Override public PsiElement setName(@NonNls @Nonnull String name) throws IncorrectOperationException {
throw new IncorrectOperationException("Can't rename");
}
}