ignite-3682: method which are used in scalar-module was returned
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7e1d5831 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7e1d5831 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7e1d5831 Branch: refs/heads/master Commit: 7e1d58314e1e99490565ecb02193ddc2bcedfaf3 Parents: b2441db Author: daradurvs <[email protected]> Authored: Tue Apr 4 21:06:40 2017 +0300 Committer: agura <[email protected]> Committed: Mon Apr 10 19:39:06 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/util/lang/GridFunc.java | 14 +++++- .../lang/gridfunc/RunnableWrapperClosure.java | 51 ++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/7e1d5831/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java index 71ff014..c93f077 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java @@ -53,8 +53,8 @@ import org.apache.ignite.internal.util.lang.gridfunc.AtomicBooleanFactoryCallabl import org.apache.ignite.internal.util.lang.gridfunc.AtomicIntegerFactoryCallable; import org.apache.ignite.internal.util.lang.gridfunc.AtomicLongFactoryCallable; import org.apache.ignite.internal.util.lang.gridfunc.AtomicReferenceFactoryCallable; -import org.apache.ignite.internal.util.lang.gridfunc.CacheEntryGetValueClosure; import org.apache.ignite.internal.util.lang.gridfunc.CacheEntryGetKeyClosure; +import org.apache.ignite.internal.util.lang.gridfunc.CacheEntryGetValueClosure; import org.apache.ignite.internal.util.lang.gridfunc.CacheEntryHasPeekPredicate; import org.apache.ignite.internal.util.lang.gridfunc.ClusterNodeGetId8Closure; import org.apache.ignite.internal.util.lang.gridfunc.ClusterNodeGetIdClosure; @@ -91,6 +91,7 @@ import org.apache.ignite.internal.util.lang.gridfunc.PredicateMapView; import org.apache.ignite.internal.util.lang.gridfunc.PredicateSetView; import org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView; import org.apache.ignite.internal.util.lang.gridfunc.ReadOnlyCollectionView2X; +import org.apache.ignite.internal.util.lang.gridfunc.RunnableWrapperClosure; import org.apache.ignite.internal.util.lang.gridfunc.SetFactoryCallable; import org.apache.ignite.internal.util.lang.gridfunc.StringConcatReducer; import org.apache.ignite.internal.util.lang.gridfunc.ToStringClosure; @@ -970,6 +971,17 @@ public class GridFunc { } /** + * Converts given runnable to an absolute closure. + * + * @param r Runnable to convert to closure. If {@code null} - no-op closure is returned. + * @return Closure that wraps given runnable. Note that wrapping closure always returns {@code null}. + */ + @Deprecated + public static GridAbsClosure as(@Nullable final Runnable r) { + return new RunnableWrapperClosure(r); + } + + /** * Gets size of the given collection with provided optional predicates. * * @param c Collection to size. http://git-wip-us.apache.org/repos/asf/ignite/blob/7e1d5831/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/RunnableWrapperClosure.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/RunnableWrapperClosure.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/RunnableWrapperClosure.java new file mode 100644 index 0000000..8db1864 --- /dev/null +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/gridfunc/RunnableWrapperClosure.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.util.lang.gridfunc; + +import org.apache.ignite.internal.util.lang.GridAbsClosure; +import org.apache.ignite.internal.util.typedef.internal.S; + +/** + * Closure that wraps given runnable. + * Note that wrapping closure always returns {@code null}. + */ +public class RunnableWrapperClosure extends GridAbsClosure { + /** */ + private static final long serialVersionUID = 0L; + + /** */ + private final Runnable r; + + /** + * @param r Runnable to convert to closure. If {@code null} - no-op closure is returned. + */ + public RunnableWrapperClosure(Runnable r) { + this.r = r; + } + + /** {@inheritDoc} */ + @Override public void apply() { + if (r != null) + r.run(); + } + + /** {@inheritDoc} */ + @Override public String toString() { + return S.toString(RunnableWrapperClosure.class, this); + } +}
