public FactoryNewInstance (@Nullable final Class <? extends DATATYPE> aClass, final boolean bCheckInstancable) { if (bCheckInstancable && !ClassHelper.isInstancableClass (aClass)) throw new IllegalArgumentException ("The passed class '" + aClass + "' is not instancable or doesn't have a no-argument constructor!"); m_aClass = aClass; }
public <DATATYPE extends IAggregator <?, ?>> AggregatorFactoryNewInstance (@Nonnull final Class <DATATYPE> aClass) { ValueEnforcer.notNull (aClass, "aClass"); if (!ClassHelper.isInstancableClass (aClass)) throw new IllegalArgumentException ("Class " + aClass + " is not instancable!"); m_aClass = aClass; }
@Nonnull private static <T extends AbstractSingleton> T _instantiateSingleton (@Nonnull final Class <T> aClass, @Nonnull final IScope aScope) { // create new object in passed scope try { if (s_aLogger.isDebugEnabled ()) s_aLogger.debug ("Created singleton for '" + aClass + "' in scope " + aScope.toString ()); // Check if class is public, non-abstract etc. if (!ClassHelper.isInstancableClass (aClass)) throw new IllegalStateException ("Class " + aClass + " is not instancable!"); // Find the now-argument constructor final Constructor <T> aCtor = aClass.getDeclaredConstructor ((Class <?> []) null); // Ubuntu: java.security.AccessControlException: access denied // (java.lang.reflect.ReflectPermission suppressAccessChecks) if (false) AccessController.doPrivileged (new PrivilegedActionAccessibleObjectSetAccessible (aCtor)); // Invoke default ctor final T ret = aCtor.newInstance ((Object []) null); return ret; } catch (final Throwable t) { throw LoggedRuntimeException.newException (t); } }