/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.lang.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.util.Iconable;
import com.intellij.psi.FileViewProvider;
import gw.lang.parser.IParsedElement;
import gw.lang.reflect.gs.ClassType;
import gw.lang.reflect.gs.IGosuClass;
import gw.plugin.ij.icons.GosuIcons;
import gw.plugin.ij.lang.GosuLanguage;
import gw.plugin.ij.lang.parser.GosuAstTransformer;
import gw.plugin.ij.lang.psi.IGosuPsiElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class GosuEnhancementFileImpl extends AbstractGosuClassFileImpl {
public GosuEnhancementFileImpl(@NotNull FileViewProvider viewProvider) {
super(viewProvider, GosuLanguage.instance());
}
public ASTNode parse(@NotNull ASTNode chameleon) {
return GosuAstTransformer.instance().transformClass(chameleon, parseType(false)).getFirstChildNode();
}
@NotNull
@SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"})
protected GosuEnhancementFileImpl clone() {
return (GosuEnhancementFileImpl) super.clone();
}
public IGosuClass parseType(String strClassName, String contents, int completionMarkerOffset) {
return parseGosuClassDirectly(strClassName, contents, completionMarkerOffset, ClassType.Enhancement);
}
@Override
protected Icon getElementIcon(@IconFlags int flags) {
return GosuIcons.FILE_ENHANCEMENT;
}
}