Remove Google Guava usage (move to Java7)

Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/b8c06e61
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/b8c06e61
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/b8c06e61

Branch: refs/heads/MNG-5868
Commit: b8c06e61ab73cd9e25a5b2c93d9e5077b2196751
Parents: d925081
Author: Sylwester Lachiewicz <slachiew...@gmail.com>
Authored: Wed Nov 8 22:29:50 2017 +0100
Committer: Hervé Boutemy <hbout...@apache.org>
Committed: Sun Feb 11 11:54:17 2018 +0100

----------------------------------------------------------------------
 .../java/org/apache/maven/DefaultMaven.java     |   8 +-
 .../execution/DefaultMavenExecutionRequest.java |   4 +-
 .../scope/internal/MojoExecutionScope.java      |   6 +-
 .../maven/extension/internal/CoreExports.java   |  10 +-
 .../extension/internal/CoreExtensionEntry.java  |   7 +-
 .../apache/maven/graph/DefaultGraphBuilder.java |  18 +--
 .../maven/lifecycle/DefaultLifecycles.java      |   7 +-
 ...DefaultLifecycleExecutionPlanCalculator.java |   5 +-
 .../maven/project/ProjectModelResolver.java     |  14 +--
 .../session/scope/internal/SessionScope.java    |   3 +-
 .../java/org/apache/maven/cli/MavenCli.java     |   5 +-
 .../org/apache/maven/model/building/Result.java | 109 +++++++++++--------
 12 files changed, 101 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java 
b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 7e46ad0..7f052c1 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -60,8 +60,6 @@ import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
 
-import com.google.common.collect.Iterables;
-
 /**
  * @author Jason van Zyl
  */
@@ -222,8 +220,7 @@ public class DefaultMaven
 
         if ( graphResult.hasErrors() )
         {
-            return addExceptionToResult( result, Iterables.toArray( 
graphResult.getProblems(),
-                                                                    
ModelProblem.class )[0].getException() );
+            return addExceptionToResult( result, 
graphResult.getProblems().iterator().next().getException() );
         }
 
         try
@@ -289,8 +286,7 @@ public class DefaultMaven
 
         if ( graphResult.hasErrors() )
         {
-            return addExceptionToResult( result, Iterables.toArray( 
graphResult.getProblems(),
-                                                                    
ModelProblem.class )[0].getException() );
+            return addExceptionToResult( result, 
graphResult.getProblems().iterator().next().getException() );
         }
 
         try

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
index 089a7db..fe558cd 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
@@ -43,8 +43,6 @@ import org.eclipse.aether.RepositoryCache;
 import org.eclipse.aether.repository.WorkspaceReader;
 import org.eclipse.aether.transfer.TransferListener;
 
-import com.google.common.collect.Maps;
-
 /**
  * @author Jason van Zyl
  */
@@ -1280,7 +1278,7 @@ public class DefaultMavenExecutionRequest
     {
         if ( data == null )
         {
-            data = Maps.newHashMap();
+            data = new HashMap<>();
         }
 
         return data;

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
 
b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
index 168a87f..785877e 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
@@ -20,6 +20,7 @@ package org.apache.maven.execution.scope.internal;
  */
 
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.IdentityHashMap;
 import java.util.LinkedList;
 import java.util.Map;
@@ -29,7 +30,6 @@ import org.apache.maven.execution.MojoExecutionListener;
 import org.apache.maven.execution.scope.WeakMojoExecutionListener;
 import org.apache.maven.plugin.MojoExecutionException;
 
-import com.google.common.collect.Maps;
 import com.google.inject.Key;
 import com.google.inject.OutOfScopeException;
 import com.google.inject.Provider;
@@ -52,9 +52,9 @@ public class MojoExecutionScope
 
     private static final class ScopeState
     {
-        private final Map<Key<?>, Provider<?>> seeded = Maps.newHashMap();
+        private final Map<Key<?>, Provider<?>> seeded = new HashMap<>();
 
-        private final Map<Key<?>, Object> provided = Maps.newHashMap();
+        private final Map<Key<?>, Object> provided = new HashMap<>();
     }
 
     private final ThreadLocal<LinkedList<ScopeState>> values = new 
ThreadLocal<>();

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
index e253e9f..331617c 100644
--- 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
+++ 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
@@ -19,15 +19,15 @@ package org.apache.maven.extension.internal;
  * under the License.
  */
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
 
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
 
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-
 /**
  * Provides information about artifacts (identified by groupId:artifactId 
string key) and classpath elements exported by
  * Maven core itself and loaded Maven core extensions.
@@ -52,8 +52,8 @@ public class CoreExports
         {
             packages.put( pkg, realm );
         }
-        this.artifacts = ImmutableSet.copyOf( exportedArtifacts );
-        this.packages = ImmutableMap.copyOf( packages );
+        this.artifacts = Collections.unmodifiableSet( new HashSet<>( 
exportedArtifacts ) );
+        this.packages = Collections.unmodifiableMap( new HashMap<>( packages ) 
);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
index ffac1d3..50220f6 100644
--- 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
+++ 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
@@ -19,7 +19,6 @@ package org.apache.maven.extension.internal;
  * under the License.
  */
 
-import com.google.common.collect.ImmutableSet;
 import org.apache.maven.project.ExtensionDescriptor;
 import org.apache.maven.project.ExtensionDescriptorBuilder;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
@@ -29,7 +28,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Set;
 
@@ -50,8 +51,8 @@ public class CoreExtensionEntry
     public CoreExtensionEntry( ClassRealm realm, Collection<String> artifacts, 
Collection<String> packages )
     {
         this.realm = realm;
-        this.artifacts = ImmutableSet.copyOf( artifacts );
-        this.packages = ImmutableSet.copyOf( packages );
+        this.artifacts = Collections.unmodifiableSet( new HashSet<>( artifacts 
) );
+        this.packages = Collections.unmodifiableSet( new HashSet<>( packages ) 
);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java 
b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
index 701e7c5..ec72e8d 100644
--- a/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
@@ -23,12 +23,12 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.Lists;
 import org.apache.maven.DefaultMaven;
 import org.apache.maven.MavenExecutionException;
 import org.apache.maven.ProjectCycleException;
@@ -85,23 +85,17 @@ public class DefaultGraphBuilder
 
             return result;
         }
-        catch ( final ProjectBuildingException e )
+        catch ( final ProjectBuildingException | DuplicateProjectException | 
MavenExecutionException e )
         {
-            return Result.error( Lists.newArrayList( new DefaultModelProblem( 
null, null, null, null, 0, 0, e ) ) );
+            return Result.error( Collections.singletonList
+                    ( new DefaultModelProblem ( null, null, null, null, 0, 0, 
e ) ) );
         }
         catch ( final CycleDetectedException e )
         {
             String message = "The projects in the reactor contain a cyclic 
reference: " + e.getMessage();
             ProjectCycleException error = new ProjectCycleException( message, 
e );
-            return Result.error( Lists.newArrayList( new DefaultModelProblem( 
null, null, null, null, 0, 0, error ) ) );
-        }
-        catch ( final DuplicateProjectException e )
-        {
-            return Result.error( Lists.newArrayList( new DefaultModelProblem( 
null, null, null, null, 0, 0, e ) ) );
-        }
-        catch ( final MavenExecutionException e )
-        {
-            return Result.error( Lists.newArrayList( new DefaultModelProblem( 
null, null, null, null, 0, 0, e ) ) );
+            return Result.error( Collections.singletonList(
+                    new DefaultModelProblem( null, null, null, null, 0, 0, 
error ) ) );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java 
b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
index 8186a39..a7d9fac 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
@@ -24,8 +24,6 @@ import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 
-import com.google.common.base.Preconditions;
-
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -122,7 +120,10 @@ public class DefaultLifecycles
         for ( String name : lifecycleNames )
         {
             Lifecycle lifecycle = lifecycles.get( name );
-            Preconditions.checkNotNull( "A lifecycle must have an id.", 
lifecycle.getId() );
+            if ( lifecycle.getId() == null )
+            {
+                throw new NullPointerException( "A lifecycle must have an id." 
);
+            }
             result.add( lifecycle );
         }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
index 1e81b18..ef60c4e 100644
--- 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
+++ 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
@@ -59,7 +59,6 @@ import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import com.google.common.collect.ImmutableMap;
 
 /**
  * <strong>NOTE:</strong> This class is not part of any public api and can be 
changed or deleted without prior notice.
@@ -111,8 +110,8 @@ public class DefaultLifecycleExecutionPlanCalculator
         this.defaultLifeCycles = defaultLifeCycles;
         this.mojoDescriptorCreator = mojoDescriptorCreator;
         this.lifecyclePluginResolver = lifecyclePluginResolver;
-        this.mojoExecutionConfigurators =
-            ImmutableMap.of( "default", (MojoExecutionConfigurator) new 
DefaultMojoExecutionConfigurator() );
+        this.mojoExecutionConfigurators = Collections.singletonMap(
+             "default", (MojoExecutionConfigurator) new 
DefaultMojoExecutionConfigurator() );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java 
b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
index 3a31d33..2b3108a 100644
--- 
a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
+++ 
b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
@@ -23,11 +23,10 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Parent;
 import org.apache.maven.model.Repository;
@@ -157,14 +156,15 @@ public class ProjectModelResolver
 
     private static void removeMatchingRepository( Iterable<RemoteRepository> 
repositories, final String id )
     {
-        Iterables.removeIf( repositories, new Predicate<RemoteRepository>()
+        Iterator iterator = repositories.iterator( );
+        while ( iterator.hasNext() )
         {
-            @Override
-            public boolean apply( RemoteRepository remoteRepository )
+            RemoteRepository next =  ( RemoteRepository ) iterator.next();
+            if ( next.getId().equals( id ) )
             {
-                return remoteRepository.getId().equals( id );
+                iterator.remove();
             }
-        } );
+        }
     }
 
     public ModelResolver newCopy()

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
----------------------------------------------------------------------
diff --git 
a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
 
b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
index e57a19c..ac423bc 100644
--- 
a/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
+++ 
b/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
@@ -24,7 +24,6 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.Map;
 
-import com.google.common.collect.ImmutableMap;
 import com.google.inject.Key;
 import com.google.inject.OutOfScopeException;
 import com.google.inject.Provider;
@@ -46,7 +45,7 @@ public class SessionScope
 
         Memento( final Map<Key<?>, Provider<?>> seeded )
         {
-            this.seeded = ImmutableMap.copyOf( seeded );
+            this.seeded = Collections.unmodifiableMap( new HashMap<>( seeded ) 
);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java 
b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
index 4fac2ad..f254c58 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -19,8 +19,6 @@ package org.apache.maven.cli;
  * under the License.
  */
 
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
 import com.google.inject.AbstractModule;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Option;
@@ -101,6 +99,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -378,7 +377,7 @@ public class MavenCli
 
             if ( configFile.isFile() )
             {
-                for ( String arg : Files.toString( configFile, Charsets.UTF_8 
).split( "\\s+" ) )
+                for ( String arg : new String( Files.readAllBytes( 
configFile.toPath() ) ).split( "\\s+" ) )
                 {
                     if ( !arg.isEmpty() )
                     {

http://git-wip-us.apache.org/repos/asf/maven/blob/b8c06e61/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
----------------------------------------------------------------------
diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
index c9d5f68..df0c797 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
@@ -19,23 +19,14 @@ package org.apache.maven.model.building;
  * under the License.
  */
 
-import static com.google.common.base.Predicates.in;
-import static com.google.common.collect.Iterables.any;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.transform;
 import static java.util.Collections.singleton;
-import static java.util.EnumSet.of;
 import static org.apache.maven.model.building.ModelProblem.Severity.ERROR;
 import static org.apache.maven.model.building.ModelProblem.Severity.FATAL;
 
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
-
-import org.apache.maven.model.building.ModelProblem.Severity;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Iterables;
+import java.util.List;
 
 /**
  * There are various forms of results that are represented by this class:
@@ -83,7 +74,17 @@ public class Result<T>
      */
     public static <T> Result<T> success( T model, Result<?>... results )
     {
-        return success( model, Iterables.concat( Iterables.transform( 
Arrays.asList( results ), GET_PROBLEMS ) ) );
+        final List<ModelProblem> problemsList = new ArrayList<>();
+
+        for ( Result<?> result1 : results )
+        {
+            for ( ModelProblem modelProblem : result1.getProblems() )
+            {
+                problemsList.add( modelProblem );
+            }
+        }
+
+        return success( model, problemsList );
     }
 
     /**
@@ -108,7 +109,17 @@ public class Result<T>
 
     public static <T> Result<T> error( Result<?>... results )
     {
-        return error( Iterables.concat( Iterables.transform( Arrays.asList( 
results ), GET_PROBLEMS ) ) );
+        final List<ModelProblem> problemsList = new ArrayList<>( );
+
+        for ( Result<?> result1 : results )
+        {
+            for ( ModelProblem modelProblem : result1.getProblems( ) )
+            {
+                problemsList.add( modelProblem );
+            }
+        }
+
+        return error( problemsList );
     }
 
     /**
@@ -153,13 +164,30 @@ public class Result<T>
      */
     public static <T> Result<T> addProblems( Result<T> result, Iterable<? 
extends ModelProblem> problems )
     {
-        return new Result<>( result.hasErrors() || hasErrors( problems ), 
result.get(), concat( result.getProblems(),
-                                                                               
                  problems ) );
+        Collection<ModelProblem> list = new ArrayList<>();
+        for ( ModelProblem item : problems )
+        {
+            list.add( item );
+        }
+        for ( ModelProblem item : result.getProblems() )
+        {
+            list.add( item );
+        }
+        return new Result<>( result.hasErrors() || hasErrors( problems ), 
result.get(), list );
     }
 
     public static <T> Result<T> addProblems( Result<T> result, Result<?>... 
results )
     {
-        return addProblems( result, Iterables.concat( Iterables.transform( 
Arrays.asList( results ), GET_PROBLEMS ) ) );
+        final List<ModelProblem> problemsList = new ArrayList<>();
+
+        for ( Result<?> result1 : results )
+        {
+            for ( ModelProblem modelProblem : result1.getProblems( ) )
+            {
+                problemsList.add( modelProblem );
+            }
+        }
+        return addProblems( result, problemsList );
     }
 
     /**
@@ -169,37 +197,38 @@ public class Result<T>
      */
     public static <T> Result<Iterable<T>> newResultSet( Iterable<? extends 
Result<? extends T>> results )
     {
-        final boolean hasErrors = any( transform( results, new 
Function<Result<?>, Boolean>()
+        boolean hasErrors = false;
+        List<T> modelsList = new ArrayList<>();
+        List<ModelProblem> problemsList = new ArrayList<>();
+
+        for ( Result<? extends T> result : results )
         {
-            @Override
-            public Boolean apply( Result<?> input )
+            modelsList.add( result.get() );
+
+            for ( ModelProblem modelProblem : result.getProblems() )
             {
-                return input.hasErrors();
+                problemsList.add( modelProblem );
             }
-        } ), Predicates.equalTo( true ) );
-        final Iterable<T> models = transform( results, new Function<Result<? 
extends T>, T>()
-        {
-            @Override
-            public T apply( Result<? extends T> input )
+
+            if ( result.hasErrors() )
             {
-                return input.get();
+                hasErrors = true;
             }
-        } );
-        final Iterable<ModelProblem> problems = concat( transform( results, 
GET_PROBLEMS ) );
-        return new Result<>( hasErrors, models, problems );
+        }
+        return new Result<>( hasErrors, ( Iterable<T> ) modelsList, 
problemsList );
     }
 
     // helper to determine if problems contain error
     private static boolean hasErrors( Iterable<? extends ModelProblem> 
problems )
     {
-        return any( transform( problems, new Function<ModelProblem, Severity>()
+        for ( ModelProblem input : problems )
         {
-            @Override
-            public Severity apply( ModelProblem input )
+            if ( input.getSeverity().equals( ERROR ) || 
input.getSeverity().equals( FATAL ) )
             {
-                return input.getSeverity();
+                return true;
             }
-        } ), in( of( ERROR, FATAL ) ) );
+        }
+        return false;
     }
 
     /**
@@ -233,14 +262,4 @@ public class Result<T>
     {
         return errors;
     }
-
-    private static final Function<Result<?>, Iterable<? extends ModelProblem>> 
GET_PROBLEMS =
-        new Function<Result<?>, Iterable<? extends ModelProblem>>()
-        {
-            @Override
-            public Iterable<? extends ModelProblem> apply( Result<?> input )
-            {
-                return input.getProblems();
-            }
-        };
 }
\ No newline at end of file

Reply via email to