package fr.openwide.core.wicket.more.markup.html.factory; import org.apache.wicket.Component; public abstract class AbstractDecoratingParameterizedComponentFactory<C extends Component, P> extends AbstractParameterizedComponentFactory<C, P> { private static final long serialVersionUID = -6411443989774223672L; private final IOneParameterComponentFactory<? extends C, ? super P> delegate; public AbstractDecoratingParameterizedComponentFactory(IOneParameterComponentFactory<? extends C, ? super P> delegate) { super(); this.delegate = delegate; } @Override public C create(String wicketId, P parameter) { C result = delegate.create(wicketId, parameter); return decorate(result, parameter); } protected abstract C decorate(C component, P parameter); @Override public void detach() { delegate.detach(); } }