package org.nocket.gen.domain.element;
import gengui.domain.AbstractDomainReference;
import gengui.guiadapter.ConnectionReuse;
import gengui.util.ReflectionUtil;
import java.lang.reflect.Method;
import org.apache.commons.lang.StringUtils;
import org.nocket.gen.domain.ref.WrappedDomainReferenceI;
import org.nocket.gen.domain.visitor.DomainElementVisitorI;
public class MultivalueButtonElement<E extends AbstractDomainReference> extends AbstractDomainElement<E> {
public MultivalueButtonElement(WrappedDomainReferenceI<E> accessor, Method method) {
super(accessor, method);
}
public String getPropertiesWicketId() {
String replace = "columns." + getPropertyName();
if (isRemover()) {
replace = StringUtils.removeStart(getPropertyName(), ReflectionUtil.REMOVER_PREFIX) + "." + replace;
}
return super.getWicketId().replace(getPropertyName(), replace);
}
@Deprecated
@Override
public void accept(DomainElementVisitorI<E> visitor) {
throw new UnsupportedOperationException();
}
public boolean isRemover() {
return getMethod().getName().startsWith(ReflectionUtil.REMOVER_PREFIX);
}
@Override
public boolean repeated() {
return true;
}
@Override
public DomainElementI<E> replicate(ConnectionReuse reuse) {
return new MultivalueButtonElement<E>(this.getAccessor().replicate(reuse), this.getMethod());
}
}