/** * Create a component object based on * its definition. * @return the component as an <code>Object</code>. */ private Object icreate(Project project) { Class<?> c = getTypeClass(project); if (c == null) { return null; } Object o = createAndSet(project, c); if (adapterClass == null || (adaptToClass != null && adaptToClass.isAssignableFrom(o.getClass()))) { return o; } TypeAdapter adapterObject = (TypeAdapter) createAndSet( project, adapterClass); adapterObject.setProxy(o); return adapterObject; }
/** * Checks if the attributes are correct. * <ul> * <li>if the class can be created.</li> * <li>if an adapter class can be created</li> * <li>if the type is assignable from adapter</li> * <li>if the type can be used with the adapter class</li> * </ul> * @param project the current project. */ public void checkClass(Project project) { if (clazz == null) { clazz = getTypeClass(project); if (clazz == null) { throw new BuildException( "Unable to create class for " + getName()); } } // check adapter if (adapterClass != null && (adaptToClass == null || !adaptToClass.isAssignableFrom(clazz))) { TypeAdapter adapter = (TypeAdapter) createAndSet( project, adapterClass); adapter.checkProxyClass(clazz); } }