blob: 4773035464e0a5e87d0cfd11932c955d3bf2d825 [file] [log] [blame]
Madan Jampani619453b2015-07-22 23:47:09 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2015-present Open Networking Foundation
Madan Jampani619453b2015-07-22 23:47:09 -07003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Madan Jampanif1b8e172015-03-23 11:42:02 -070016package org.onosproject.store.service;
17
Madan Jampani538be742016-02-10 14:55:38 -080018import org.onosproject.store.primitives.DistributedPrimitiveBuilder;
Madan Jampanif1b8e172015-03-23 11:42:02 -070019
20/**
Madan Jampanidfde6ba2016-01-13 21:36:09 -080021 * Builder for {@link ConsistentMap} instances.
Madan Jampanif1b8e172015-03-23 11:42:02 -070022 *
23 * @param <K> type for map key
24 * @param <V> type for map value
25 */
Madan Jampani538be742016-02-10 14:55:38 -080026public abstract class ConsistentMapBuilder<K, V>
Jordan Halterman2c045992018-03-20 21:33:00 -070027 extends ConsistentMapOptions<ConsistentMapBuilder<K, V>, K, V>
28 implements DistributedPrimitiveBuilder<ConsistentMap<K, V>> {
Madan Jampanif1b8e172015-03-23 11:42:02 -070029
30 /**
31 * Builds an async consistent map based on the configuration options
32 * supplied to this builder.
33 *
34 * @return new async consistent map
35 * @throws java.lang.RuntimeException if a mandatory parameter is missing
36 */
Madan Jampani538be742016-02-10 14:55:38 -080037 public abstract AsyncConsistentMap<K, V> buildAsyncMap();
Sho SHIMIZU3310a342015-05-13 12:14:05 -070038}