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.4-sources.jar - Apache Commons Collections
commons-collections4-4.4-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.4-sources.jar Target JDK version: 8 Dependency: None File size: 715,541 bytes Release date: 05-Jul-2019 Download: Apache Commons Collections
✍: FYIcenter.com
⏎ org/apache/commons/collections4/functors/InstantiateTransformer.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.Constructor; import java.lang.reflect.InvocationTargetException; 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. * </p> * * @since 3.0 */ public class InstantiateTransformer<T> implements Transformer<Class<? extends T>, T> { /** Singleton instance that uses the no arg constructor */ @SuppressWarnings("rawtypes") private static final Transformer NO_ARG_INSTANCE = new InstantiateTransformer<>(); /** The constructor parameter types */ private final Class<?>[] iParamTypes; /** The constructor arguments */ private final Object[] iArgs; /** * Get a typed no-arg instance. * * @param <T> the type of the objects to be created * @return Transformer<Class<? extends T>, T> */ public static <T> Transformer<Class<? extends T>, T> instantiateTransformer() { return NO_ARG_INSTANCE; } /** * Transformer method that performs validation. * * @param <T> the type of the objects to be created * @param paramTypes the constructor parameter types * @param args the constructor arguments * @return an instantiate transformer * @throws IllegalArgumentException if paramTypes does not match args */ public static <T> Transformer<Class<? extends T>, T> instantiateTransformer(final Class<?>[] paramTypes, final Object[] args) { if (((paramTypes == null) && (args != null)) || ((paramTypes != null) && (args == null)) || ((paramTypes != null) && (args != null) && (paramTypes.length != args.length))) { throw new IllegalArgumentException("Parameter types must match the arguments"); } if (paramTypes == null || paramTypes.length == 0) { return new InstantiateTransformer<>(); } return new InstantiateTransformer<>(paramTypes, args); } /** * Constructor for no arg instance. */ private InstantiateTransformer() { super(); iParamTypes = null; iArgs = null; } /** * Constructor that performs no validation. * Use <code>instantiateTransformer</code> if you want that. * <p> * Note: from 4.0, the input parameters will be cloned * * @param paramTypes the constructor parameter types * @param args the constructor arguments */ public InstantiateTransformer(final Class<?>[] paramTypes, final Object[] args) { super(); iParamTypes = paramTypes != null ? paramTypes.clone() : null; iArgs = args != null ? args.clone() : null; } /** * Transforms the input Class object to a result by instantiation. * * @param input the input object to transform * @return the transformed result */ @Override public T transform(final Class<? extends T> input) { try { if (input == null) { throw new FunctorException( "InstantiateTransformer: Input object was not an instanceof Class, it was a null object"); } final Constructor<? extends T> con = input.getConstructor(iParamTypes); return con.newInstance(iArgs); } catch (final NoSuchMethodException ex) { throw new FunctorException("InstantiateTransformer: The constructor must exist and be public "); } catch (final InstantiationException ex) { throw new FunctorException("InstantiateTransformer: InstantiationException", ex); } catch (final IllegalAccessException ex) { throw new FunctorException("InstantiateTransformer: Constructor must be public", ex); } catch (final InvocationTargetException ex) { throw new FunctorException("InstantiateTransformer: Constructor threw an exception", ex); } } }
⏎ org/apache/commons/collections4/functors/InstantiateTransformer.java
Or download all of them as a single archive file:
File name: commons-collections4-4.4-sources.jar File size: 715541 bytes Release date: 2019-07-05 Download
⇒ Download and Install commons-collections4-4.2-bin.zip
⇐ What Is commons-collections4-4.4.jar
2020-12-15, 102190👍, 0💬
Popular Posts:
What Is jtds-1.2.2.jar? jtds-1.2.2.jar is the JAR files of jTDS Java library 1.2.2, which is a JDBC ...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...
Apache Log4j IOStreams is a Log4j API extension that provides numerous classes from java.io that can...
JAX-WS is an API for building web services and clients. It is the next generation Web Services API r...
JDK 11 jdk.internal.vm.compiler .jmodis the JMOD file for JDK 11 Internal VM Compiler module. JDK 11...