mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-19061 Integrate the Rearranger-plugin into core-IDE
Utility methods grouping
This commit is contained in:
+18
-7
@@ -15,20 +15,31 @@
|
||||
*/
|
||||
package com.intellij.psi.codeStyle.arrangement;
|
||||
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Denis Zhdanov
|
||||
* @since 9/19/12 6:41 PM
|
||||
*/
|
||||
public class JavaArrangementMethodDependencyInfo {
|
||||
|
||||
// TODO den add doc
|
||||
public void registerDependency(@NotNull PsiMethod baseMethod,
|
||||
@NotNull JavaElementArrangementEntry baseMethodEntry,
|
||||
@NotNull PsiMethod dependentMethod)
|
||||
{
|
||||
|
||||
@NotNull private final List<JavaElementArrangementEntry> getDependentMethods = new ArrayList<JavaElementArrangementEntry>();
|
||||
@NotNull private final JavaElementArrangementEntry myAnchorMethod;
|
||||
|
||||
public JavaArrangementMethodDependencyInfo(@NotNull JavaElementArrangementEntry method) {
|
||||
myAnchorMethod = method;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<JavaElementArrangementEntry> getGetDependentMethods() {
|
||||
return getDependentMethods;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public JavaElementArrangementEntry getAnchorMethod() {
|
||||
return myAnchorMethod;
|
||||
}
|
||||
}
|
||||
|
||||
+23
-5
@@ -16,6 +16,7 @@
|
||||
package com.intellij.psi.codeStyle.arrangement;
|
||||
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.*;
|
||||
@@ -28,6 +29,9 @@ public class JavaArrangementParseInfo {
|
||||
|
||||
@NotNull private final List<JavaElementArrangementEntry> myEntries = new ArrayList<JavaElementArrangementEntry>();
|
||||
|
||||
@NotNull private final List<JavaArrangementMethodDependencyInfo> myMethodDependencyRoots
|
||||
= new ArrayList<JavaArrangementMethodDependencyInfo>();
|
||||
|
||||
@NotNull private final Map<Pair<String/* property name */, String/* class name */>, JavaArrangementPropertyInfo> myProperties
|
||||
= new HashMap<Pair<String, String>, JavaArrangementPropertyInfo>();
|
||||
|
||||
@@ -39,22 +43,28 @@ public class JavaArrangementParseInfo {
|
||||
public void addEntry(@NotNull JavaElementArrangementEntry entry) {
|
||||
myEntries.add(entry);
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public Collection<JavaArrangementPropertyInfo> getProperties() {
|
||||
return myProperties.values();
|
||||
}
|
||||
|
||||
|
||||
// TODO den add doc
|
||||
@NotNull
|
||||
public List<JavaArrangementMethodDependencyInfo> getMethodDependencyRoots() {
|
||||
return myMethodDependencyRoots;
|
||||
}
|
||||
|
||||
public void registerGetter(@NotNull String propertyName, @NotNull String className, @NotNull JavaElementArrangementEntry entry) {
|
||||
getInfo(propertyName, className).setGetter(entry);
|
||||
getPropertyInfo(propertyName, className).setGetter(entry);
|
||||
}
|
||||
|
||||
public void registerSetter(@NotNull String propertyName, @NotNull String className, @NotNull JavaElementArrangementEntry entry) {
|
||||
getInfo(propertyName, className).setSetter(entry);
|
||||
getPropertyInfo(propertyName, className).setSetter(entry);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private JavaArrangementPropertyInfo getInfo(@NotNull String propertyName, @NotNull String className) {
|
||||
private JavaArrangementPropertyInfo getPropertyInfo(@NotNull String propertyName, @NotNull String className) {
|
||||
Pair<String, String> key = Pair.create(propertyName, className);
|
||||
JavaArrangementPropertyInfo propertyInfo = myProperties.get(key);
|
||||
if (propertyInfo == null) {
|
||||
@@ -62,4 +72,12 @@ public class JavaArrangementParseInfo {
|
||||
}
|
||||
return propertyInfo;
|
||||
}
|
||||
|
||||
// TODO den add doc
|
||||
public void registerDependency(@NotNull PsiMethod baseMethod,
|
||||
@NotNull JavaElementArrangementEntry baseMethodEntry,
|
||||
@NotNull PsiMethod dependentMethod)
|
||||
{
|
||||
// TODO den implement
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +204,21 @@ public class JavaRearranger implements Rearranger<JavaElementArrangementEntry>,
|
||||
}
|
||||
|
||||
private static void setupUtilityMethods(@NotNull JavaArrangementParseInfo info, @NotNull ArrangementEntryOrderType orderType) {
|
||||
|
||||
if (orderType == ArrangementEntryOrderType.DEPTH_FIRST) {
|
||||
JavaElementArrangementEntry base = null;
|
||||
for (JavaArrangementMethodDependencyInfo rootInfo : info.getMethodDependencyRoots()) {
|
||||
if (base != null) {
|
||||
rootInfo.getAnchorMethod().addDependency(base);
|
||||
}
|
||||
base = setupDepthFirstDependency(rootInfo.getAnchorMethod());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static JavaElementArrangementEntry setupDepthFirstDependency(@NotNull JavaElementArrangementEntry base) {
|
||||
// TODO den implement
|
||||
return base;
|
||||
}
|
||||
|
||||
private static void setupOverriddenMethods(JavaArrangementParseInfo info) {
|
||||
|
||||
Reference in New Issue
Block a user