/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.refactor;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.impl.source.tree.TreeCopyHandler;
import com.intellij.psi.impl.source.tree.TreeElement;
import com.intellij.psi.tree.IElementType;
import gw.plugin.ij.lang.parser.GosuElementTypes;
import gw.plugin.ij.lang.psi.impl.statements.typedef.members.GosuMethodBaseImpl;
import gw.plugin.ij.lang.psi.impl.statements.typedef.members.GosuMethodImpl;
import java.util.Map;
public class GosuTreeCopyHandler implements TreeCopyHandler {
@Override
public void encodeInformation(TreeElement element, ASTNode original, Map<Object, Object> encodingState) {
IElementType elementType = element.getElementType();
if (elementType == GosuElementTypes.METHOD_DEFINITION) {
PsiElement psi = element.getPsi();
GosuMethodImpl originalPsi = (GosuMethodImpl) original.getPsi();
psi.putUserData(GosuMethodBaseImpl.ORIGINAL_CONSTRUCTOR, originalPsi);
}
}
@Override
public TreeElement decodeInformation(TreeElement element, Map<Object, Object> decodingState) {
return null;
}
}