diff --git a/processor/src/main/java/org/mapstruct/ap/internal/util/Filters.java b/processor/src/main/java/org/mapstruct/ap/internal/util/Filters.java index ec69b7131..b673b3f16 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/util/Filters.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/util/Filters.java @@ -7,6 +7,7 @@ package org.mapstruct.ap.internal.util; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; @@ -42,73 +43,38 @@ public class Filters { this.typeMirror = typeMirror; } - public List getterMethodsIn(List elements) { - List getterMethods = new LinkedList<>(); - - for ( ExecutableElement method : elements ) { - if ( accessorNaming.isGetterMethod( method ) ) { - getterMethods.add( new ExecutableElementAccessor( method, getReturnType( method ), GETTER ) ); - } - } - - return getterMethods; - } - - public List fieldsIn(List accessors) { - List fieldAccessors = new LinkedList<>(); - - for ( VariableElement accessor : accessors ) { - if ( Fields.isFieldAccessor( accessor ) ) { - fieldAccessors.add( new VariableElementAccessor( accessor ) ); - } - } - - return fieldAccessors; - } - - public List presenceCheckMethodsIn(List elements) { - List presenceCheckMethods = new LinkedList<>(); - - for ( ExecutableElement method : elements ) { - if ( accessorNaming.isPresenceCheckMethod( method ) ) { - presenceCheckMethods.add( new ExecutableElementAccessor( - method, - getReturnType( method ), - PRESENCE_CHECKER - ) ); - } - } - - return presenceCheckMethods; - } - - public List setterMethodsIn(List elements) { - List setterMethods = new LinkedList<>(); - - for ( ExecutableElement method : elements ) { - if ( accessorNaming.isSetterMethod( method ) ) { - setterMethods.add( new ExecutableElementAccessor( method, getFirstParameter( method ), SETTER ) ); - } - } - return setterMethods; - } - - public List adderMethodsIn( List elements) { - List adderMethods = new LinkedList<>(); - - for ( ExecutableElement method : elements ) { - if ( accessorNaming.isAdderMethod( method ) ) { - adderMethods.add( new ExecutableElementAccessor( method, getFirstParameter( method ), ADDER ) ); - } - } - - return adderMethods; + public List getterMethodsIn(List elements) { + return elements.stream() + .filter( accessorNaming::isGetterMethod ) + .map( method -> new ExecutableElementAccessor( method, getReturnType( method ), GETTER ) ) + .collect( Collectors.toCollection( LinkedList::new ) ); } private TypeMirror getReturnType(ExecutableElement executableElement) { return getWithinContext( executableElement ).getReturnType(); } + public List fieldsIn(List accessors) { + return accessors.stream() + .filter( Fields::isFieldAccessor ) + .map( VariableElementAccessor::new ) + .collect( Collectors.toCollection( LinkedList::new ) ); + } + + public List presenceCheckMethodsIn(List elements) { + return elements.stream() + .filter( accessorNaming::isPresenceCheckMethod ) + .map( method -> new ExecutableElementAccessor( method, getReturnType( method ), PRESENCE_CHECKER ) ) + .collect( Collectors.toCollection( LinkedList::new ) ); + } + + public List setterMethodsIn(List elements) { + return elements.stream() + .filter( accessorNaming::isSetterMethod ) + .map( method -> new ExecutableElementAccessor( method, getFirstParameter( method ), SETTER ) ) + .collect( Collectors.toCollection( LinkedList::new ) ); + } + private TypeMirror getFirstParameter(ExecutableElement executableElement) { return first( getWithinContext( executableElement ).getParameterTypes() ); } @@ -116,4 +82,11 @@ public class Filters { private ExecutableType getWithinContext( ExecutableElement executableElement ) { return (ExecutableType) typeUtils.asMemberOf( (DeclaredType) typeMirror, executableElement ); } + + public List adderMethodsIn(List elements) { + return elements.stream() + .filter( accessorNaming::isAdderMethod ) + .map( method -> new ExecutableElementAccessor( method, getFirstParameter( method ), ADDER ) ) + .collect( Collectors.toCollection( LinkedList::new ) ); + } }