/*
* Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.mvstore;
import org.h2.mvstore.type.
DataType;
import org.h2.mvstore.type.
ObjectDataType;
/**
* A class used for backward compatibility.
*
* @param <K> the key type
* @param <V> the value type
*/
public class
MVMapConcurrent<K, V> extends
MVMap<K, V> {
public
MVMapConcurrent(
DataType keyType,
DataType valueType) {
super(
keyType,
valueType);
}
/**
* A builder for this class.
*
* @param <K> the key type
* @param <V> the value type
*/
public static class
Builder<K, V> implements
MapBuilder<
MVMapConcurrent<K, V>, K, V> {
protected
DataType keyType;
protected
DataType valueType;
/**
* Create a new builder with the default key and value data types.
*/
public
Builder() {
// ignore
}
/**
* Set the key data type.
*
* @param keyType the key type
* @return this
*/
public
Builder<K, V>
keyType(
DataType keyType) {
this.
keyType =
keyType;
return this;
}
/**
* Set the key data type.
*
* @param valueType the key type
* @return this
*/
public
Builder<K, V>
valueType(
DataType valueType) {
this.
valueType =
valueType;
return this;
}
@
Override
public
MVMapConcurrent<K, V>
create() {
if (
keyType == null) {
keyType = new
ObjectDataType();
}
if (
valueType == null) {
valueType = new
ObjectDataType();
}
return new
MVMapConcurrent<>(
keyType,
valueType);
}
}
}