functional: remove Iterables.first and Iterables.last and their usage
Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/47cbc7bc Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/47cbc7bc Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/47cbc7bc Branch: refs/heads/develop Commit: 47cbc7bc1a5fe79f9b108ecf3850d587095420d1 Parents: f8cd4f5 Author: Paul Merlin <[email protected]> Authored: Wed Dec 7 09:43:28 2016 +0100 Committer: Paul Merlin <[email protected]> Committed: Wed Dec 7 09:43:28 2016 +0100 ---------------------------------------------------------------------- .../apache/zest/api/query/QueryExpressions.java | 5 ++-- .../org/apache/zest/functional/Iterables.java | 25 -------------------- .../apache/zest/functional/IterablesTest.java | 7 ------ .../elasticsearch/ElasticSearchFinder.java | 9 ++++++- .../shiro/ini/IniSecurityManagerService.java | 3 +-- .../shiro/web/EnvironmentLoaderService.java | 3 +-- .../org/apache/zest/sample/rental/web/Page.java | 2 -- .../apache/zest/envisage/detail/MethodPane.java | 2 -- .../detail/ServiceConfigurationPane.java | 2 -- .../apache/zest/envisage/detail/StatePane.java | 2 -- .../model/util/ServiceConfigurationFinder.java | 4 +--- .../zest/tools/model/util/StateFinder.java | 2 -- 12 files changed, 14 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java ---------------------------------------------------------------------- diff --git a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java index dea7134..0ef35c3 100644 --- a/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java +++ b/core/api/src/main/java/org/apache/zest/api/query/QueryExpressions.java @@ -26,6 +26,7 @@ import java.lang.reflect.Proxy; import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collection; +import java.util.Iterator; import java.util.function.Predicate; import org.apache.zest.api.association.Association; import org.apache.zest.api.association.GenericAssociationInfo; @@ -66,7 +67,6 @@ import org.apache.zest.api.query.grammar.Variable; import org.apache.zest.api.util.NullArgumentException; import static org.apache.zest.api.identity.HasIdentity.IDENTITY_METHOD; -import static org.apache.zest.functional.Iterables.first; import static org.apache.zest.functional.Iterables.prepend; /** @@ -174,7 +174,8 @@ public final class QueryExpressions public static <T> T oneOf( final NamedAssociation<T> association ) { NullArgumentException.validateNotNull( "Association", association ); - return association.get( first( association ) ); + Iterator<String> iterator = association.iterator(); + return association.get( iterator.hasNext() ? iterator.next() : null ); } /** http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/core/functional/src/main/java/org/apache/zest/functional/Iterables.java ---------------------------------------------------------------------- diff --git a/core/functional/src/main/java/org/apache/zest/functional/Iterables.java b/core/functional/src/main/java/org/apache/zest/functional/Iterables.java index 0cdcd63..ae1d66c 100644 --- a/core/functional/src/main/java/org/apache/zest/functional/Iterables.java +++ b/core/functional/src/main/java/org/apache/zest/functional/Iterables.java @@ -58,31 +58,6 @@ public final class Iterables return new FilterIterable<>( i, (Predicate<? super X>) specification ); } - public static <X> X first( Iterable<X> i ) - { - Iterator<X> iter = i.iterator(); - if( iter.hasNext() ) - { - return iter.next(); - } - else - { - return null; - } - } - - public static <X> X last( Iterable<X> i ) - { - Iterator<X> iter = i.iterator(); - X item = null; - while( iter.hasNext() ) - { - item = iter.next(); - } - - return item; - } - @SuppressWarnings( "unchecked" ) public static <FROM, TO> Iterable<TO> map( Function<? /* super FROM */, TO> function, Iterable<FROM> from ) { http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/core/functional/src/test/java/org/apache/zest/functional/IterablesTest.java ---------------------------------------------------------------------- diff --git a/core/functional/src/test/java/org/apache/zest/functional/IterablesTest.java b/core/functional/src/test/java/org/apache/zest/functional/IterablesTest.java index 84787d7..063d067 100644 --- a/core/functional/src/test/java/org/apache/zest/functional/IterablesTest.java +++ b/core/functional/src/test/java/org/apache/zest/functional/IterablesTest.java @@ -53,13 +53,6 @@ public class IterablesTest } @Test - public void testFirst() - { - assertThat( Iterables.first( numbers ), equalTo( "1" ) ); - assertThat( Iterables.first( emptyList() ), nullValue() ); - } - - @Test public void testAppend() { assertThat( Iterables.toList( Iterables.append( "C", Iterables.iterable( "A", "B" ) ) ).toString(), http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchFinder.java ---------------------------------------------------------------------- diff --git a/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchFinder.java index d1e083d..ebec4bd 100644 --- a/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchFinder.java +++ b/extensions/indexing-elasticsearch/src/main/java/org/apache/zest/index/elasticsearch/ElasticSearchFinder.java @@ -20,6 +20,7 @@ package org.apache.zest.index.elasticsearch; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.function.Predicate; import org.apache.zest.api.composite.Composite; @@ -396,7 +397,13 @@ public interface ElasticSearchFinder Map<String, Object> variables ) { LOGGER.trace( "Processing ContainsAllSpecification {}", spec ); - Object firstValue = Iterables.first( spec.containedValues() ); + Iterator<?> iterator = spec.containedValues().iterator(); + if( !iterator.hasNext() ) + { + // Ignore empty contains all spec + return; + } + Object firstValue = iterator.next(); if( firstValue instanceof ValueComposite ) { // Query by complex property "example value" http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/libraries/shiro-core/src/main/java/org/apache/zest/library/shiro/ini/IniSecurityManagerService.java ---------------------------------------------------------------------- diff --git a/libraries/shiro-core/src/main/java/org/apache/zest/library/shiro/ini/IniSecurityManagerService.java b/libraries/shiro-core/src/main/java/org/apache/zest/library/shiro/ini/IniSecurityManagerService.java index 58e5d85..d9a3788 100644 --- a/libraries/shiro-core/src/main/java/org/apache/zest/library/shiro/ini/IniSecurityManagerService.java +++ b/libraries/shiro-core/src/main/java/org/apache/zest/library/shiro/ini/IniSecurityManagerService.java @@ -34,7 +34,6 @@ import org.apache.zest.api.injection.scope.This; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.service.ServiceActivation; import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.functional.Iterables; import org.apache.zest.library.shiro.Shiro; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,7 +75,7 @@ public interface IniSecurityManagerService setIni( Ini.fromResourcePath( iniResourcePath ) ); securityManager = getInstance(); - if ( realmsRefs != null && Iterables.count( realmsRefs ) > 0 ) { + if ( realmsRefs != null && realmsRefs.iterator().hasNext() ) { // Register Realms Services RealmSecurityManager realmSecurityManager = ( RealmSecurityManager ) securityManager; http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/libraries/shiro-web/src/main/java/org/apache/zest/library/shiro/web/EnvironmentLoaderService.java ---------------------------------------------------------------------- diff --git a/libraries/shiro-web/src/main/java/org/apache/zest/library/shiro/web/EnvironmentLoaderService.java b/libraries/shiro-web/src/main/java/org/apache/zest/library/shiro/web/EnvironmentLoaderService.java index 10fce76..400e4ac 100644 --- a/libraries/shiro-web/src/main/java/org/apache/zest/library/shiro/web/EnvironmentLoaderService.java +++ b/libraries/shiro-web/src/main/java/org/apache/zest/library/shiro/web/EnvironmentLoaderService.java @@ -34,7 +34,6 @@ import org.apache.zest.api.injection.scope.This; import org.apache.zest.api.mixin.Mixins; import org.apache.zest.api.service.ServiceComposite; import org.apache.zest.api.service.ServiceReference; -import org.apache.zest.functional.Iterables; import org.apache.zest.library.shiro.Shiro; import org.apache.zest.library.shiro.ini.ShiroIniConfiguration; import org.slf4j.Logger; @@ -68,7 +67,7 @@ public interface EnvironmentLoaderService sce.getServletContext().setInitParameter( "shiroConfigLocations", iniResourcePath ); WebEnvironment env = initEnvironment( sce.getServletContext() ); - if ( realmsRefs != null && Iterables.count( realmsRefs ) > 0 ) { + if ( realmsRefs != null && realmsRefs.iterator().hasNext() ) { // Register Realms Services RealmSecurityManager realmSecurityManager = ( RealmSecurityManager ) env.getSecurityManager(); http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/samples/rental/src/main/java/org/apache/zest/sample/rental/web/Page.java ---------------------------------------------------------------------- diff --git a/samples/rental/src/main/java/org/apache/zest/sample/rental/web/Page.java b/samples/rental/src/main/java/org/apache/zest/sample/rental/web/Page.java index 679a159..6bd2ba0 100644 --- a/samples/rental/src/main/java/org/apache/zest/sample/rental/web/Page.java +++ b/samples/rental/src/main/java/org/apache/zest/sample/rental/web/Page.java @@ -35,8 +35,6 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import static org.apache.zest.functional.Iterables.first; - @Concerns( PageUowManagement.class ) @Mixins( { Page.MountPointMixin.class, Page.DefaultPageRenderMixin.class } ) public interface Page http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/tools/envisage/src/main/java/org/apache/zest/envisage/detail/MethodPane.java ---------------------------------------------------------------------- diff --git a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/MethodPane.java b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/MethodPane.java index 7dc0b34..b8f8d5e 100644 --- a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/MethodPane.java +++ b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/MethodPane.java @@ -52,8 +52,6 @@ import org.apache.zest.tools.model.descriptor.MethodSideEffectDetailDescriptor; import org.apache.zest.tools.model.descriptor.ObjectDetailDescriptor; import org.apache.zest.tools.model.util.DescriptorUtilities; -import static org.apache.zest.functional.Iterables.first; - /** * Implementation of Composite Method Panel */ http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/tools/envisage/src/main/java/org/apache/zest/envisage/detail/ServiceConfigurationPane.java ---------------------------------------------------------------------- diff --git a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/ServiceConfigurationPane.java b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/ServiceConfigurationPane.java index 8b9e06b..2bb4a77 100644 --- a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/ServiceConfigurationPane.java +++ b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/ServiceConfigurationPane.java @@ -43,8 +43,6 @@ import org.apache.zest.tools.model.descriptor.ServiceDetailDescriptor; import org.apache.zest.tools.model.descriptor.ValueDetailDescriptor; import org.apache.zest.tools.model.util.DescriptorUtilities; -import static org.apache.zest.functional.Iterables.first; - /** * Implementation of Service Configuration Panel */ http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/tools/envisage/src/main/java/org/apache/zest/envisage/detail/StatePane.java ---------------------------------------------------------------------- diff --git a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/StatePane.java b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/StatePane.java index 70b8c13..cf0e96f 100644 --- a/tools/envisage/src/main/java/org/apache/zest/envisage/detail/StatePane.java +++ b/tools/envisage/src/main/java/org/apache/zest/envisage/detail/StatePane.java @@ -58,8 +58,6 @@ import org.apache.zest.tools.model.descriptor.MethodSideEffectDetailDescriptor; import org.apache.zest.tools.model.descriptor.ObjectDetailDescriptor; import org.apache.zest.tools.model.util.DescriptorUtilities; -import static org.apache.zest.functional.Iterables.first; - /** * Implementation of Composite State Panel */ http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/ServiceConfigurationFinder.java ---------------------------------------------------------------------- diff --git a/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/ServiceConfigurationFinder.java b/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/ServiceConfigurationFinder.java index b243563..635adbb 100644 --- a/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/ServiceConfigurationFinder.java +++ b/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/ServiceConfigurationFinder.java @@ -30,8 +30,6 @@ import org.apache.zest.tools.model.descriptor.ServiceDetailDescriptor; import org.apache.zest.tools.model.descriptor.TransientDetailDescriptor; import org.apache.zest.tools.model.descriptor.ValueDetailDescriptor; -import static org.apache.zest.functional.Iterables.first; - class ServiceConfigurationFinder { public Object findConfigurationDescriptor( ServiceDetailDescriptor descriptor ) @@ -43,7 +41,7 @@ class ServiceConfigurationFinder return null; } - // traverse the appDescritor to find the configurationDescriptor + // traverse the appDescriptor to find the configurationDescriptor ApplicationDetailDescriptor appDescriptor = descriptor.module().layer().application(); Object obj = findConfigurationDescriptor( appDescriptor, configType ); if( obj == null ) http://git-wip-us.apache.org/repos/asf/zest-java/blob/47cbc7bc/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/StateFinder.java ---------------------------------------------------------------------- diff --git a/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/StateFinder.java b/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/StateFinder.java index 15351fb..98bdf68 100644 --- a/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/StateFinder.java +++ b/tools/model-detail/src/main/java/org/apache/zest/tools/model/util/StateFinder.java @@ -30,8 +30,6 @@ import org.apache.zest.api.property.Property; import org.apache.zest.tools.model.descriptor.CompositeDetailDescriptor; import org.apache.zest.tools.model.descriptor.CompositeMethodDetailDescriptor; -import static org.apache.zest.functional.Iterables.first; - public class StateFinder { public List<CompositeMethodDetailDescriptor> findState( CompositeDetailDescriptor<?> descriptor )
