Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
commons-collections4-4.2-sources.jar - Apache Commons Collections
commons-collections4-4.2-sources.jar is the source JAR file for Apache Commons Collections 4.2, which provides additional collection handling functionalities on top of JDK library.
JAR File Size and Download Location:
JAR name: commons-collections4-4.2-sources.jar Target JDK version: 1.7 Dependency: None File size: 708,599 bytes Release date: 08-Jul-2018 Download: Apache Commons Collections
✍: FYIcenter.com
⏎ org/apache/commons/collections4/functors/InvokerTransformer.java
/* * 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.commons.collections4.functors; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.apache.commons.collections4.FunctorException; import org.apache.commons.collections4.Transformer; /** * Transformer implementation that creates a new object instance by reflection. * <p> * <b>WARNING:</b> from v4.1 onwards this class will <b>not</b> be serializable anymore * in order to prevent potential remote code execution exploits. Please refer to * <a href="https://issues.apache.org/jira/browse/COLLECTIONS-580">COLLECTIONS-580</a> * for more details. * * @since 3.0 */ public class InvokerTransformer<I, O> implements Transformer<I, O> { /** The method name to call */ private final String iMethodName; /** The array of reflection parameter types */ private final Class<?>[] iParamTypes; /** The array of reflection arguments */ private final Object[] iArgs; /** * Gets an instance of this transformer calling a specific method with no arguments. * * @param <I> the input type * @param <O> the output type * @param methodName the method name to call * @return an invoker transformer * @throws NullPointerException if methodName is null * @since 3.1 */ public static <I, O> Transformer<I, O> invokerTransformer(final String methodName) { if (methodName == null) { throw new NullPointerException("The method to invoke must not be null"); } return new InvokerTransformer<>(methodName); } /** * Gets an instance of this transformer calling a specific method with specific values. * * @param <I> the input type * @param <O> the output type * @param methodName the method name to call * @param paramTypes the parameter types of the method * @param args the arguments to pass to the method * @return an invoker transformer * @throws NullPointerException if methodName is null * @throws IllegalArgumentException if paramTypes does not match args */ public static <I, O> Transformer<I, O> invokerTransformer(final String methodName, final Class<?>[] paramTypes, final Object[] args) { if (methodName == null) { throw new NullPointerException("The method to invoke must not be null"); } if (((paramTypes == null) && (args != null)) || ((paramTypes != null) && (args == null)) || ((paramTypes != null) && (args != null) && (paramTypes.length != args.length))) { throw new IllegalArgumentException("The parameter types must match the arguments"); } if (paramTypes == null || paramTypes.length == 0) { return new InvokerTransformer<>(methodName); } return new InvokerTransformer<>(methodName, paramTypes, args); } /** * Constructor for no arg instance. * * @param methodName the method to call */ private InvokerTransformer(final String methodName) { super(); iMethodName = methodName; iParamTypes = null; iArgs = null; } /** * Constructor that performs no validation. * Use <code>invokerTransformer</code> if you want that. * <p> * Note: from 4.0, the input parameters will be cloned * * @param methodName the method to call * @param paramTypes the constructor parameter types * @param args the constructor arguments */ public InvokerTransformer(final String methodName, final Class<?>[] paramTypes, final Object[] args) { super(); iMethodName = methodName; iParamTypes = paramTypes != null ? paramTypes.clone() : null; iArgs = args != null ? args.clone() : null; } /** * Transforms the input to result by invoking a method on the input. * * @param input the input object to transform * @return the transformed result, null if null input */ @Override @SuppressWarnings("unchecked") public O transform(final Object input) { if (input == null) { return null; } try { final Class<?> cls = input.getClass(); final Method method = cls.getMethod(iMethodName, iParamTypes); return (O) method.invoke(input, iArgs); } catch (final NoSuchMethodException ex) { throw new FunctorException("InvokerTransformer: The method '" + iMethodName + "' on '" + input.getClass() + "' does not exist"); } catch (final IllegalAccessException ex) { throw new FunctorException("InvokerTransformer: The method '" + iMethodName + "' on '" + input.getClass() + "' cannot be accessed"); } catch (final InvocationTargetException ex) { throw new FunctorException("InvokerTransformer: The method '" + iMethodName + "' on '" + input.getClass() + "' threw an exception", ex); } } }
⏎ org/apache/commons/collections4/functors/InvokerTransformer.java
Or download all of them as a single archive file:
File name: commons-collections4-4.2-sources.jar File size: 708599 bytes Release date: 2018-07-08 Download
⇒ Download and Install commons-collections4-4.1-bin.zip
⇐ What Is commons-collections4-4.2.jar
2023-03-28, 27669👍, 0💬
Popular Posts:
iText is an ideal library for developers looking to enhance web- and other applications with dynamic...
What Is commons-io-2.11.jar? commons-io-2.11.jar is the JAR file for Commons IO 2.5, which is a libr...
xml-commons External Source Code Files are provided in the source package file, xml-commons-external...
Joda-Time provides a quality replacement for the Java date and time classes. The design allows for m...
JasperReports, the world's most popular open source business intelligence and reporting engine and J...