nl.topicus.jdbc.shaded.io.netty.util.DomainMappingBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spanner-jdbc Show documentation
Show all versions of spanner-jdbc Show documentation
JDBC Driver for Google Cloud Spanner
/*
* Copyright 2015 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 nl.topicus.jdbc.shaded.com.liance
* with the License. You may obtain a copy of the License at:
*
* http://www.apache.nl.topicus.jdbc.shaded.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 nl.topicus.jdbc.shaded.io.nl.topicus.jdbc.shaded.net.y.util;
/**
* Builder for immutable {@link DomainNameMapping} instances.
*
* @param concrete type of value objects
* @deprecated Use {@link DomainNameMappingBuilder} instead.
*/
@Deprecated
public final class DomainMappingBuilder {
private final DomainNameMappingBuilder builder;
/**
* Constructor with default initial capacity of the map holding the mappings
*
* @param defaultValue the default value for {@link DomainNameMapping#map(String)} to return
* when nothing matches the input
*/
public DomainMappingBuilder(V defaultValue) {
builder = new DomainNameMappingBuilder(defaultValue);
}
/**
* Constructor with initial capacity of the map holding the mappings
*
* @param initialCapacity initial capacity for the internal map
* @param defaultValue the default value for {@link DomainNameMapping#map(String)} to return
* when nothing matches the input
*/
public DomainMappingBuilder(int initialCapacity, V defaultValue) {
builder = new DomainNameMappingBuilder(initialCapacity, defaultValue);
}
/**
* Adds a mapping that maps the specified (optionally wildcard) host name to the specified output value.
* Null values are forbidden for both hostnames and values.
*
* DNS wildcard is supported as hostname.
* For example, you can use {@code *.nl.topicus.jdbc.shaded.net.y.nl.topicus.jdbc.shaded.io. to match {@code nl.topicus.jdbc.shaded.net.y.nl.topicus.jdbc.shaded.io. and {@code downloads.nl.topicus.jdbc.shaded.net.y.nl.topicus.jdbc.shaded.io..
*
*
* @param hostname the host name (optionally wildcard)
* @param output the output value that will be returned by {@link DomainNameMapping#map(String)}
* when the specified host name matches the specified input host name
*/
public DomainMappingBuilder add(String hostname, V output) {
builder.add(hostname, output);
return this;
}
/**
* Creates a new instance of immutable {@link DomainNameMapping}
* Attempts to add new mappings to the result object will cause {@link UnsupportedOperationException} to be thrown
*
* @return new {@link DomainNameMapping} instance
*/
public DomainNameMapping build() {
return builder.build();
}
}