* @return A clone of this Composer.
* @since 3.5.2
*/
public Object willClone(Component comp) {
try {
final Execution exec = Executions.getCurrent();
final int idcode = System.identityHashCode(comp);
Composer composerClone = (Composer) exec.getAttribute(COMPOSER_CLONE+idcode);
if (composerClone == null) {
composerClone = (Composer) Classes.newInstance(getClass(), null);
exec.setAttribute(COMPOSER_CLONE+idcode, composerClone);
//cannot call doAfterCompose directly because the clone
//component might not be attach to Page yet
comp.addEventListener(ON_CLONE_DO_AFTER_COMPOSE, new CloneDoAfterCompose());
Events.postEvent(new Event(ON_CLONE_DO_AFTER_COMPOSE, comp, composerClone));