📄 overridemethodsrequestprocessor.java
字号:
package org.python.pydev.refactoring.codegenerator.overridemethods;
import java.util.ArrayList;
import java.util.List;
import org.python.pydev.refactoring.ast.adapters.FunctionDefAdapter;
import org.python.pydev.refactoring.ast.adapters.IClassDefAdapter;
import org.python.pydev.refactoring.ast.adapters.offsetstrategy.IOffsetStrategy;
import org.python.pydev.refactoring.codegenerator.overridemethods.request.OverrideMethodsRequest;
import org.python.pydev.refactoring.core.request.IRequestProcessor;
import org.python.pydev.refactoring.ui.model.overridemethods.ClassTreeNode;
import org.python.pydev.refactoring.ui.model.overridemethods.FunctionTreeNode;
public class OverrideMethodsRequestProcessor implements IRequestProcessor<OverrideMethodsRequest> {
private Object[] checked;
private int insertionPoint;
private boolean generateMethodComments;
private IClassDefAdapter origin;
private String endLineDelim;
public OverrideMethodsRequestProcessor(IClassDefAdapter origin, String endLineDelim) {
checked = new Object[0];
insertionPoint = IOffsetStrategy.AFTERINIT;
this.origin = origin;
this.endLineDelim = endLineDelim;
}
public void setCheckedElements(Object[] checked) {
this.checked = checked;
}
public void setInsertionPoint(int strategy) {
this.insertionPoint = strategy;
}
public void setGenerateMethodComments(boolean value) {
this.generateMethodComments = value;
}
public List<OverrideMethodsRequest> getRefactoringRequests() {
List<OverrideMethodsRequest> requests = new ArrayList<OverrideMethodsRequest>();
for (ClassTreeNode clazz : getClasses()) {
for (FunctionDefAdapter method : getMethods(clazz)) {
requests.add(new OverrideMethodsRequest(origin, insertionPoint, method, generateMethodComments,
clazz.getAdapter().getName(), endLineDelim));
}
}
return requests;
}
private List<FunctionDefAdapter> getMethods(ClassTreeNode parent) {
List<FunctionDefAdapter> methods = new ArrayList<FunctionDefAdapter>();
for (int i = 0; i < checked.length; i++) {
if (checked[i] instanceof FunctionTreeNode) {
FunctionTreeNode method = (FunctionTreeNode) checked[i];
if (method.getParent() == parent) {
methods.add(method.getAdapter());
}
}
}
return methods;
}
private List<ClassTreeNode> getClasses() {
List<ClassTreeNode> classes = new ArrayList<ClassTreeNode>();
for (int i = 0; i < checked.length; i++) {
if (checked[i] instanceof ClassTreeNode) {
classes.add((ClassTreeNode) checked[i]);
}
}
return classes;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -