public static <T> T createInstance(final Class<?> cls, final Class<? extends T> defaultType, final Class<T> requiredType) { Assert.assertNotNull("Class to instantiate must be specified", cls); try { if (requiredType == null || requiredType.isAssignableFrom(cls)) { final Class<T> tClass = CastUtils.cast(cls); return tClass.newInstance(); } else { throw new InstanceCreationClassException("Class '" + cls.getName() + "' is not of type '" + requiredType + "'"); } } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Class '" + cls + "'found , but is missing a dependent class: " + e.getMessage(), e); } catch (final InstantiationException e) { throw new InstanceCreationException("Could not instantiate an object of class '" + cls.getName() + "'; " + e.getMessage()); } catch (final IllegalAccessException e) { throw new InstanceCreationException("Could not access the class '" + cls.getName() + "'; " + e.getMessage()); } }
@Override public void execute(final Workspace workspace, final View view, final Location at) { final Enumeration<Logger> enumeration = enumerationOver(Logger.getRootLogger().getAllAppenders(), Logger.class); while (enumeration.hasMoreElements()) { final Appender appender = (Appender) enumeration.nextElement(); if (appender instanceof SnapshotAppender) { ((SnapshotAppender) appender).forceSnapshot(); } } }
/** * Automatically flattens any {@link List}s, recursively (depth-first) if necessary. */ public void addFixture(final Object fixture) { if (fixture instanceof List) { final List<Object> fixtureList = CastUtils.listOf(fixture, Object.class); for(Object eachFixture: fixtureList) { addFixture(eachFixture); } } else { fixtures.add(fixture); } }
/** * Add this service, automatically unravelling if is a {@link Collection} of services. * * @param service */ public void addService(final Object service) { if (service instanceof Collection) { // unravel if necessary final Collection<Object> services = collectionOf(service, Object.class); for (final Object eachService : services) { addService(eachService); } } else { services.add(service); } }
public static <T> T createInstance(final String className, final String defaultTypeName, final Class<T> requiredType) { Class<? extends T> defaultType = null; if (defaultTypeName != null) { try { defaultType = CastUtils.cast(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName)); if (defaultType == null) { throw new InstanceCreationClassException("Failed to load default type '" + defaultTypeName + "'"); } } catch (final ClassNotFoundException e) { throw new UnavailableClassException("The default type '" + defaultTypeName + "' cannot be found"); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + defaultTypeName + "' found, but is missing a dependent class: " + e.getMessage(), e); } } return createInstance(className, defaultType, requiredType); }
@Override public Consent disabled(final View component) { final Enumeration<Logger> enumeration = enumerationOver(Logger.getRootLogger().getAllAppenders(), Logger.class); while (enumeration.hasMoreElements()) { final Appender appender = (Appender) enumeration.nextElement(); if (appender instanceof SnapshotAppender) { return Allow.DEFAULT; } } // TODO: move logic into Facet return new Veto("No available snapshot appender"); }
private void addServices(final List<Object> services) { for (final Object service : services) { if (service instanceof List) { final List<Object> serviceList = CastUtils.listOf(service, Object.class); addServices(serviceList); } else { addService(service); } } }
public static <T> T createInstance(final Class<?> cls, final Class<? extends T> defaultType, final Class<T> requiredType) { Assert.assertNotNull("Class to instantiate must be specified", cls); try { if (requiredType == null || requiredType.isAssignableFrom(cls)) { final Class<T> tClass = CastUtils.cast(cls); return tClass.newInstance(); } else { throw new InstanceCreationClassException("Class '" + cls.getName() + "' is not of type '" + requiredType + "'"); } } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Class '" + cls + "'found , but is missing a dependent class: " + e.getMessage(), e); } catch (final InstantiationException e) { throw new InstanceCreationException("Could not instantiate an object of class '" + cls.getName() + "'; " + e.getMessage()); } catch (final IllegalAccessException e) { throw new InstanceCreationException("Could not access the class '" + cls.getName() + "'; " + e.getMessage()); } }
private NakedObjectAssociation[] orderFields(final OrderSet order) { final NakedObjectAssociation[] fields = new NakedObjectAssociation[order.size()]; final Enumeration<NakedObjectAssociation> elements = CastUtils.enumerationOver(order.elements(), NakedObjectAssociation.class); int actionCnt = 0; while (elements.hasMoreElements()) { final Object element = elements.nextElement(); if (element instanceof JavaNakedObjectAssociationPeer) { final JavaNakedObjectAssociationPeer javaNakedObjectAssociationPeer = (JavaNakedObjectAssociationPeer) element; final NakedObjectAssociation nakedObjectAssociation = createNakedObjectField(javaNakedObjectAssociationPeer); fields[actionCnt++] = nakedObjectAssociation; } else if (element instanceof OrderSet) { // Not supported at present } else { throw new UnknownTypeException(element); } } if (actionCnt < fields.length) { final NakedObjectAssociation[] actualActions = new NakedObjectAssociation[actionCnt]; System.arraycopy(fields, 0, actualActions, 0, actionCnt); return actualActions; } return fields; }
private void addServices(final List<Object> services) { for (final Object service : services) { if (service instanceof List) { final List<Object> serviceList = CastUtils.listOf(service, Object.class); addServices(serviceList); } else { addService(service); } } }
public static <T> T createInstance(final String className, final String defaultTypeName, final Class<T> requiredType) { Class<? extends T> defaultType = null; if (defaultTypeName != null) { try { defaultType = CastUtils.cast(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName)); if (defaultType == null) { throw new InstanceCreationClassException("Failed to load default type '" + defaultTypeName + "'"); } } catch (final ClassNotFoundException e) { throw new UnavailableClassException("The default type '" + defaultTypeName + "' cannot be found"); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + defaultTypeName + "' found, but is missing a dependent class: " + e.getMessage(), e); } } return createInstance(className, defaultType, requiredType); }
private NakedObjectAssociation[] orderFields(final OrderSet order) { final NakedObjectAssociation[] fields = new NakedObjectAssociation[order.size()]; final Enumeration<NakedObjectAssociation> elements = CastUtils.enumerationOver(order.elements(), NakedObjectAssociation.class); int actionCnt = 0; while (elements.hasMoreElements()) { final Object element = elements.nextElement(); if (element instanceof JavaNakedObjectAssociationPeer) { final JavaNakedObjectAssociationPeer javaNakedObjectAssociationPeer = (JavaNakedObjectAssociationPeer) element; final NakedObjectAssociation nakedObjectAssociation = createNakedObjectField(javaNakedObjectAssociationPeer); fields[actionCnt++] = nakedObjectAssociation; } else if (element instanceof OrderSet) { // Not supported at present } else { throw new UnknownTypeException(element); } } if (actionCnt < fields.length) { final NakedObjectAssociation[] actualActions = new NakedObjectAssociation[actionCnt]; System.arraycopy(fields, 0, actualActions, 0, actionCnt); return actualActions; } return fields; }
/** * Returns the provided {@link Facet facet} as an {@link ImperativeFacet} if it either is one or if it is * a {@link DecoratingFacet} that in turn wraps an {@link ImperativeFacet}. * * <p> * Otherwise, returns <tt>null</tt>. */ public static ImperativeFacet getImperativeFacet(final Facet facet) { if (facet instanceof ImperativeFacet) { return (ImperativeFacet) facet; } if (facet instanceof DecoratingFacet) { final DecoratingFacet<?> decoratingFacet = CastUtils.cast(facet); return getImperativeFacet(decoratingFacet.getDecoratedFacet()); } return null; }
private NakedObjectAction[] orderActions(final OrderSet order) { final NakedObjectAction[] actions = new NakedObjectAction[order.size()]; final Enumeration<NakedObjectAction> elements = CastUtils.enumerationOver(order.elements(), NakedObjectAction.class); int actionCnt = 0; while (elements.hasMoreElements()) { final Object element = elements.nextElement(); if (element instanceof JavaNakedObjectActionPeer) { final JavaNakedObjectActionPeer javaNakedObjectActionPeer = (JavaNakedObjectActionPeer) element; final String actionId = javaNakedObjectActionPeer.getIdentifier().getMemberName(); final NakedObjectAction nakedObjectAction = new NakedObjectActionImpl(actionId, javaNakedObjectActionPeer, getRuntimeContext()); actions[actionCnt++] = nakedObjectAction; } else if (element instanceof OrderSet) { final OrderSet set = ((OrderSet) element); actions[actionCnt++] = new NakedObjectActionSet("", set.getGroupFullName(), orderActions(set), getRuntimeContext()); } else { throw new UnknownTypeException(element); } } if (actionCnt < actions.length) { final NakedObjectAction[] actualActions = new NakedObjectAction[actionCnt]; System.arraycopy(actions, 0, actualActions, 0, actionCnt); return actualActions; } return actions; }
/** * Returns the provided {@link Facet facet} as an {@link ImperativeFacet} if it either is one or if it is * a {@link DecoratingFacet} that in turn wraps an {@link ImperativeFacet}. * * <p> * Otherwise, returns <tt>null</tt>. */ public static ImperativeFacet getImperativeFacet(final Facet facet) { if (facet instanceof ImperativeFacet) { return (ImperativeFacet) facet; } if (facet instanceof DecoratingFacet) { final DecoratingFacet<?> decoratingFacet = CastUtils.cast(facet); return getImperativeFacet(decoratingFacet.getDecoratedFacet()); } return null; }
private NakedObjectAction[] orderActions(final OrderSet order) { final NakedObjectAction[] actions = new NakedObjectAction[order.size()]; final Enumeration<NakedObjectAction> elements = CastUtils.enumerationOver(order.elements(), NakedObjectAction.class); int actionCnt = 0; while (elements.hasMoreElements()) { final Object element = elements.nextElement(); if (element instanceof JavaNakedObjectActionPeer) { final JavaNakedObjectActionPeer javaNakedObjectActionPeer = (JavaNakedObjectActionPeer) element; final String actionId = javaNakedObjectActionPeer.getIdentifier().getMemberName(); final NakedObjectAction nakedObjectAction = new NakedObjectActionImpl(actionId, javaNakedObjectActionPeer, getRuntimeContext()); actions[actionCnt++] = nakedObjectAction; } else if (element instanceof OrderSet) { final OrderSet set = ((OrderSet) element); actions[actionCnt++] = new NakedObjectActionSet("", set.getGroupFullName(), orderActions(set), getRuntimeContext()); } else { throw new UnknownTypeException(element); } } if (actionCnt < actions.length) { final NakedObjectAction[] actualActions = new NakedObjectAction[actionCnt]; System.arraycopy(actions, 0, actualActions, 0, actionCnt); return actualActions; } return actions; }
public static <R, T extends R> Class<T> loadClass( String className, Class<R> requiredType) { Assert.assertNotNull("Class to instantiate must be specified", className); try { Class<?> loadedClass = loadClass(className); if (requiredType != null && !requiredType.isAssignableFrom(loadedClass)) { throw new InstanceCreationClassException("Class '" + className + "' is not of type '" + requiredType + "'"); } return CastUtils.cast(loadedClass); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + className + "' found, but is missing a dependent class: " + e.getMessage(), e); } }
public static <R, T extends R> Class<T> loadClass( String className, Class<R> requiredType) { Assert.assertNotNull("Class to instantiate must be specified", className); try { Class<?> loadedClass = loadClass(className); if (requiredType != null && !requiredType.isAssignableFrom(loadedClass)) { throw new InstanceCreationClassException("Class '" + className + "' is not of type '" + requiredType + "'"); } return CastUtils.cast(loadedClass); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + className + "' found, but is missing a dependent class: " + e.getMessage(), e); } }
public static <T> T createInstance(final Class<?> cls, final String defaultTypeName, final Class<T> requiredType) { Class<? extends T> defaultType = null; if (defaultTypeName != null) { defaultType = loadClass(defaultTypeName, requiredType); try { defaultType = CastUtils.cast(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName)); if (defaultType == null) { throw new InstanceCreationClassException("Failed to load default type '" + defaultTypeName + "'"); } } catch (final ClassNotFoundException e) { throw new UnavailableClassException("The default type '" + defaultTypeName + "' cannot be found"); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + defaultTypeName + "' found, but is missing a dependent class: " + e.getMessage(), e); } } return createInstance(cls, defaultType, requiredType); }
public static <T> T createInstance(final Class<?> cls, final String defaultTypeName, final Class<T> requiredType) { Class<? extends T> defaultType = null; if (defaultTypeName != null) { defaultType = loadClass(defaultTypeName, requiredType); try { defaultType = CastUtils.cast(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName)); if (defaultType == null) { throw new InstanceCreationClassException("Failed to load default type '" + defaultTypeName + "'"); } } catch (final ClassNotFoundException e) { throw new UnavailableClassException("The default type '" + defaultTypeName + "' cannot be found"); } catch (final NoClassDefFoundError e) { throw new InstanceCreationClassException("Default type '" + defaultTypeName + "' found, but is missing a dependent class: " + e.getMessage(), e); } } return createInstance(cls, defaultType, requiredType); }