Skip to content

Commit

Permalink
updated to java8
Browse files Browse the repository at this point in the history
  • Loading branch information
mplushnikov committed Jul 15, 2018
1 parent 57c46f6 commit 0c98884
Showing 1 changed file with 16 additions and 28 deletions.
Expand Up @@ -8,16 +8,14 @@
import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiClass; import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiMethod;
import de.plushnikov.intellij.plugin.psi.LombokLightClassBuilder; import de.plushnikov.intellij.plugin.psi.LombokLightClassBuilder;
import de.plushnikov.intellij.plugin.psi.LombokLightFieldBuilder; import de.plushnikov.intellij.plugin.psi.LombokLightFieldBuilder;
import de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder; import de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;


import java.util.ArrayList; import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.stream.Stream;


/** /**
* Extension to populate StructureView with all fields, methods and inner classes generated by lombok * Extension to populate StructureView with all fields, methods and inner classes generated by lombok
Expand All @@ -30,34 +28,24 @@ public Class<? extends PsiElement> getType() {


@Override @Override
public StructureViewTreeElement[] getChildren(PsiElement parent) { public StructureViewTreeElement[] getChildren(PsiElement parent) {
Collection<StructureViewTreeElement> result = new ArrayList<StructureViewTreeElement>(); final PsiClass parentClass = (PsiClass) parent;
final PsiClass psiClass = (PsiClass) parent;


for (PsiField psiField : psiClass.getFields()) { final Stream<PsiFieldTreeElement> lombokFields = Arrays.stream(parentClass.getFields())
if (psiField instanceof LombokLightFieldBuilder) { .filter(LombokLightFieldBuilder.class::isInstance)
result.add(new PsiFieldTreeElement(psiField, false)); .map(psiField -> new PsiFieldTreeElement(psiField, false));
}
}


for (PsiMethod psiMethod : psiClass.getMethods()) { final Stream<PsiMethodTreeElement> lombokMethods = Arrays.stream(parentClass.getMethods())
if (psiMethod instanceof LombokLightMethodBuilder) { .filter(LombokLightMethodBuilder.class::isInstance)
result.add(new PsiMethodTreeElement(psiMethod, false)); .map(psiMethod -> new PsiMethodTreeElement(psiMethod, false));
}
}


for (PsiClass psiInnerClass : psiClass.getInnerClasses()) { final Stream<JavaClassTreeElement> lombokInnerClasses = Arrays.stream(parentClass.getInnerClasses())
if (psiInnerClass instanceof LombokLightClassBuilder) { .filter(LombokLightClassBuilder.class::isInstance)
result.add(new JavaClassTreeElement(psiInnerClass, false, new HashSet<PsiClass>() {{ .map(psiClass -> new JavaClassTreeElement(psiClass, false, new HashSet<PsiClass>() {{
add(psiClass); add(parentClass);
}})); }}));
}
}


if (!result.isEmpty()) { return Stream.concat(Stream.concat(lombokFields, lombokMethods), lombokInnerClasses)
return result.toArray(new StructureViewTreeElement[result.size()]); .toArray(StructureViewTreeElement[]::new);
} else {
return StructureViewTreeElement.EMPTY_ARRAY;
}
} }


@Nullable @Nullable
Expand Down

0 comments on commit 0c98884

Please sign in to comment.