package fr.openwide.core.wicket.more.link.descriptor.impl;
import org.apache.wicket.Component;
import com.google.common.collect.ImmutableList;
import fr.openwide.core.wicket.more.link.descriptor.DynamicImage;
import fr.openwide.core.wicket.more.link.descriptor.generator.IImageResourceLinkGenerator;
import fr.openwide.core.wicket.more.link.descriptor.generator.ILinkGenerator;
public class ChainedImageResourceLinkGeneratorImpl extends AbstractChainedLinkGenerator<IImageResourceLinkGenerator>
implements IImageResourceLinkGenerator {
private static final long serialVersionUID = -2475023459193693212L;
public ChainedImageResourceLinkGeneratorImpl(Iterable<? extends IImageResourceLinkGenerator> chain) {
super(chain);
}
@Override
public ILinkGenerator chain(ILinkGenerator other) {
if (other instanceof IImageResourceLinkGenerator) {
return chain((IImageResourceLinkGenerator) other);
}
return new ChainedLinkGeneratorImpl(
ImmutableList.<ILinkGenerator>builder().addAll(getChain()).add(other).build()
);
}
@Override
public IImageResourceLinkGenerator chain(IImageResourceLinkGenerator other) {
return new ChainedImageResourceLinkGeneratorImpl(
ImmutableList.<IImageResourceLinkGenerator>builder().addAll(getChain()).add(other).build()
);
}
@Override
public IImageResourceLinkGenerator wrap(Component component) {
ImmutableList.Builder<IImageResourceLinkGenerator> builder = ImmutableList.builder();
for (IImageResourceLinkGenerator element : getChain()) {
builder.add(element.wrap(component));
}
return new ChainedImageResourceLinkGeneratorImpl(builder.build());
}
@Override
public DynamicImage image(String wicketId) {
return delegate().image(wicketId);
}
}