/*
 * Copyright 2016 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */
package io.netty.bootstrap;

import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.ServerChannel;
import io.netty.util.AttributeKey;
import io.netty.util.internal.StringUtil;

import java.util.Map;

Exposes the configuration of a ServerBootstrapConfig.
/** * Exposes the configuration of a {@link ServerBootstrapConfig}. */
public final class ServerBootstrapConfig extends AbstractBootstrapConfig<ServerBootstrap, ServerChannel> { ServerBootstrapConfig(ServerBootstrap bootstrap) { super(bootstrap); }
Returns the configured EventLoopGroup which will be used for the child channels or null if non is configured yet.
/** * Returns the configured {@link EventLoopGroup} which will be used for the child channels or {@code null} * if non is configured yet. */
@SuppressWarnings("deprecation") public EventLoopGroup childGroup() { return bootstrap.childGroup(); }
Returns the configured ChannelHandler be used for the child channels or null if non is configured yet.
/** * Returns the configured {@link ChannelHandler} be used for the child channels or {@code null} * if non is configured yet. */
public ChannelHandler childHandler() { return bootstrap.childHandler(); }
Returns a copy of the configured options which will be used for the child channels.
/** * Returns a copy of the configured options which will be used for the child channels. */
public Map<ChannelOption<?>, Object> childOptions() { return bootstrap.childOptions(); }
Returns a copy of the configured attributes which will be used for the child channels.
/** * Returns a copy of the configured attributes which will be used for the child channels. */
public Map<AttributeKey<?>, Object> childAttrs() { return bootstrap.childAttrs(); } @Override public String toString() { StringBuilder buf = new StringBuilder(super.toString()); buf.setLength(buf.length() - 1); buf.append(", "); EventLoopGroup childGroup = childGroup(); if (childGroup != null) { buf.append("childGroup: "); buf.append(StringUtil.simpleClassName(childGroup)); buf.append(", "); } Map<ChannelOption<?>, Object> childOptions = childOptions(); if (!childOptions.isEmpty()) { buf.append("childOptions: "); buf.append(childOptions); buf.append(", "); } Map<AttributeKey<?>, Object> childAttrs = childAttrs(); if (!childAttrs.isEmpty()) { buf.append("childAttrs: "); buf.append(childAttrs); buf.append(", "); } ChannelHandler childHandler = childHandler(); if (childHandler != null) { buf.append("childHandler: "); buf.append(childHandler); buf.append(", "); } if (buf.charAt(buf.length() - 1) == '(') { buf.append(')'); } else { buf.setCharAt(buf.length() - 2, ')'); buf.setLength(buf.length() - 1); } return buf.toString(); } }