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.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>> {
20 MonitorRequest<E> monitorRequest;
22 MonitorRequestBuilder(E tableSchema) {
23 this.tableSchema = tableSchema;
26 public static <T extends TableSchema<T>> MonitorRequestBuilder<T> builder(T tableSchema) {
27 return new MonitorRequestBuilder<>(tableSchema);
30 MonitorRequest<E> getMonitorRequest() {
31 if (monitorRequest == null) {
32 monitorRequest = new MonitorRequest<>();
34 return monitorRequest;
37 public MonitorRequestBuilder<E> addColumn(String column) {
38 getMonitorRequest().addColumn(column);
42 public MonitorRequestBuilder<E> addColumn(ColumnSchema<?, ?> column) {
43 this.addColumn(column.getName());
47 public MonitorRequestBuilder<E> addColumns(List<ColumnSchema<E, ?>> columns) {
48 for (ColumnSchema<E, ?> schema : columns) {
49 this.addColumn(schema);
54 public Set<String> getColumns() {
55 return getMonitorRequest().getColumns();
58 public MonitorRequestBuilder<E> with(MonitorSelect select) {
59 getMonitorRequest().setSelect(select);
63 public MonitorRequest<E> build() {
64 MonitorRequest<E> monitorRequest = getMonitorRequest();
65 if (monitorRequest.getSelect() == null) {
66 monitorRequest.setSelect(new MonitorSelect());
68 monitorRequest.setTableName(tableSchema.getName());
69 return monitorRequest;