package jetbrains.mps.vcs.changesmanager.tree;
/*Generated by MPS */
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.vcs.changesmanager.tree.features.Feature;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.ide.ui.tree.MPSTreeNode;
import jetbrains.mps.ide.findusages.view.treeholder.treeview.UsagesTree;
import jetbrains.mps.ide.findusages.view.treeholder.tree.nodedatatypes.BaseNodeData;
import jetbrains.mps.ide.findusages.view.treeholder.tree.nodedatatypes.ModelNodeData;
import org.jetbrains.mps.openapi.model.SModelReference;
import jetbrains.mps.vcs.changesmanager.tree.features.ModelFeature;
import jetbrains.mps.ide.findusages.view.treeholder.tree.nodedatatypes.NodeNodeData;
import org.jetbrains.mps.openapi.model.SNodeReference;
import jetbrains.mps.vcs.changesmanager.tree.features.NodeFeature;
import jetbrains.mps.ide.findusages.view.treeholder.tree.DataNode;
public class UsagesTreeFeatureExtractor implements TreeNodeFeatureExtractor {
public UsagesTreeFeatureExtractor() {
}
@Nullable
@Override
public Feature getFeature(@NotNull MPSTreeNode treeNode) {
if (treeNode instanceof UsagesTree.UsagesTreeNode) {
BaseNodeData nodeData = check_f7pfq7_a0a0a0b(((UsagesTree.UsagesTreeNode) treeNode).getUserObject());
if (nodeData instanceof ModelNodeData) {
SModelReference mr = ((ModelNodeData) nodeData).getModelReference();
if (mr != null) {
return new ModelFeature(mr);
}
} else if (nodeData instanceof NodeNodeData) {
SNodeReference np = ((NodeNodeData) nodeData).getNodePointer();
if (np != null) {
return new NodeFeature(np);
}
}
}
return null;
}
private static BaseNodeData check_f7pfq7_a0a0a0b(DataNode checkedDotOperand) {
if (null != checkedDotOperand) {
return checkedDotOperand.getData();
}
return null;
}
}