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/InstantiateFactory.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.Factory; import org.apache.commons.collections4.FunctorException; /** * Factory 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 InstantiateFactory<T> implements Factory<T> { /** The class to create */ private final Class<T> iClassToInstantiate; /** The constructor parameter types */ private final Class<?>[] iParamTypes; /** The constructor arguments */ private final Object[] iArgs; /** The constructor */ private transient Constructor<T> iConstructor = null; /** * Factory method that performs validation. * * @param <T> the type the factory creates * @param classToInstantiate the class to instantiate, not null * @param paramTypes the constructor parameter types, cloned * @param args the constructor arguments, cloned * @return a new instantiate factory * @throws NullPointerException if classToInstantiate is null * @throws IllegalArgumentException if paramTypes does not match args */ public static <T> Factory<T> instantiateFactory(final Class<T> classToInstantiate, final Class<?>[] paramTypes, final Object[] args) { if (classToInstantiate == null) { throw new NullPointerException("Class to instantiate must not be null"); } 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 InstantiateFactory<>(classToInstantiate); } return new InstantiateFactory<>(classToInstantiate, paramTypes, args); } /** * Constructor that performs no validation. * Use <code>instantiateFactory</code> if you want that. * * @param classToInstantiate the class to instantiate */ public InstantiateFactory(final Class<T> classToInstantiate) { super(); iClassToInstantiate = classToInstantiate; iParamTypes = null; iArgs = null; findConstructor(); } /** * Constructor that performs no validation. * Use <code>instantiateFactory</code> if you want that. * * @param classToInstantiate the class to instantiate * @param paramTypes the constructor parameter types, cloned * @param args the constructor arguments, cloned */ public InstantiateFactory(final Class<T> classToInstantiate, final Class<?>[] paramTypes, final Object[] args) { super(); iClassToInstantiate = classToInstantiate; iParamTypes = paramTypes.clone(); iArgs = args.clone(); findConstructor(); } /** * Find the Constructor for the class specified. */ private void findConstructor() { try { iConstructor = iClassToInstantiate.getConstructor(iParamTypes); } catch (final NoSuchMethodException ex) { throw new IllegalArgumentException("InstantiateFactory: The constructor must exist and be public "); } } /** * Creates an object using the stored constructor. * * @return the new object */ @Override public T create() { // needed for post-serialization if (iConstructor == null) { findConstructor(); } try { return iConstructor.newInstance(iArgs); } catch (final InstantiationException ex) { throw new FunctorException("InstantiateFactory: InstantiationException", ex); } catch (final IllegalAccessException ex) { throw new FunctorException("InstantiateFactory: Constructor must be public", ex); } catch (final InvocationTargetException ex) { throw new FunctorException("InstantiateFactory: Constructor threw an exception", ex); } } }
⏎ org/apache/commons/collections4/functors/InstantiateFactory.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, 20787👍, 0💬
Popular Posts:
JasperReports, the world's most popular open source business intelligence and reporting engine and J...
ANTLR is a powerful parser generator for multiple programming languages including Java. ANTLR contai...
JDK 17 jdk.hotspot.agent.jmod is the JMOD file for JDK 17 Hotspot Agent module. JDK 17 Hotspot Agent...
How to download and install JDK (Java Development Kit) 8? If you want to write Java applications, yo...
The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible...