org.h2.mvstore.MVMapConcurrent Maven / Gradle / Ivy
/*
* 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 the key type
* @param the value type
*/
public class MVMapConcurrent extends MVMap {
public MVMapConcurrent(DataType keyType, DataType valueType) {
super(keyType, valueType);
}
/**
* A builder for this class.
*
* @param the key type
* @param the value type
*/
public static class Builder implements
MapBuilder, 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 keyType(DataType keyType) {
this.keyType = keyType;
return this;
}
/**
* Set the key data type.
*
* @param valueType the key type
* @return this
*/
public Builder valueType(DataType valueType) {
this.valueType = valueType;
return this;
}
@Override
public MVMapConcurrent create() {
if (keyType == null) {
keyType = new ObjectDataType();
}
if (valueType == null) {
valueType = new ObjectDataType();
}
return new MVMapConcurrent<>(keyType, valueType);
}
}
}