package org.infinispan.server.router.configuration.builder; import java.lang.invoke.MethodHandles; import java.net.InetAddress; import org.infinispan.commons.logging.LogFactory; import org.infinispan.server.router.logging.RouterLogger; public abstract class AbstractRouterBuilder implements MultiTenantConfigurationBuilderParent { protected static final RouterLogger logger = LogFactory.getLog(MethodHandles.lookup().lookupClass(), RouterLogger.class); protected final MultiTenantConfigurationBuilderParent parent; protected int port; protected InetAddress ip; protected boolean enabled; protected AbstractRouterBuilder(MultiTenantConfigurationBuilderParent parent) { this.parent = parent; } public AbstractRouterBuilder port(int port) { this.port = port; return this; } public AbstractRouterBuilder ip(InetAddress ip) { this.ip = ip; return this; } public AbstractRouterBuilder enabled(boolean enabled) { this.enabled = enabled; return this; } protected void validate() { if (this.enabled) { if (ip == null) { throw new IllegalArgumentException("IP can not be null"); } if (port < 0) { throw new IllegalArgumentException("Port can not be negative"); } } } @Override public RoutingBuilder routing() { return parent.routing(); } @Override public HotRodRouterBuilder hotrod() { return parent.hotrod(); } @Override public RestRouterBuilder rest() { return parent.rest(); } }