2 * Copyright (c) 2013, 2015 EBay Software Foundation and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.ovsdb.lib.message;
11 import java.util.Collection;
12 import java.util.HashSet;
13 import java.util.List;
14 import org.opendaylight.ovsdb.lib.schema.ColumnSchema;
15 import org.opendaylight.ovsdb.lib.schema.TableSchema;
17 public class MonitorRequestBuilder<E extends TableSchema<E>> {
19 private final E tableSchema;
20 private final Collection<String> columns = new HashSet<>();
21 private MonitorSelect select;
23 public MonitorRequestBuilder(E tableSchema) {
24 this.tableSchema = tableSchema;
27 public MonitorRequestBuilder<E> addColumn(String column) {
28 this.columns.add(column);
32 public MonitorRequestBuilder<E> addColumn(ColumnSchema<?, ?> column) {
33 this.addColumn(column.getName());
37 public MonitorRequestBuilder<E> addColumns(Collection<String> extraColumns) {
38 this.columns.addAll(extraColumns);
42 public MonitorRequestBuilder<E> addColumns(List<ColumnSchema<E, ?>> extraColumns) {
43 for (ColumnSchema<E, ?> schema : extraColumns) {
44 this.addColumn(schema);
49 public Collection<String> getColumns() {
53 public MonitorRequestBuilder<E> with(MonitorSelect what) {
58 public MonitorRequest build() {
59 MonitorRequest request = new MonitorRequest(tableSchema.getName(), new HashSet<>(this.columns));
60 request.setSelect(select == null ? new MonitorSelect() : select);