/* * Copyright © 2014, 2017 Red Hat, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.ovsdb.lib.operations; import java.util.ArrayList; import java.util.List; import org.opendaylight.ovsdb.lib.notation.Condition; import org.opendaylight.ovsdb.lib.schema.ColumnSchema; import org.opendaylight.ovsdb.lib.schema.TableSchema; public class Select<E extends TableSchema<E>> extends Operation<E> implements ConditionalOperation { public static final String SELECT = "select"; private List<Condition> where = new ArrayList<>(); private List<String> columns = new ArrayList<>(); public Select on(TableSchema schema) { this.setTableSchema(schema); return this; } public Select(TableSchema<E> schema) { super(schema, SELECT); } public <D, C extends TableSchema<C>> Select<E> column(ColumnSchema<C, D> columnSchema) { columns.add(columnSchema.getName()); return this; } public Where where(Condition condition) { where.add(condition); return new Where(this); } public List<String> getColumns() { return columns; } public void setColumns(List<String> columns) { this.columns = columns; } @Override public void addCondition(Condition condition) { this.where.add(condition); } public List<Condition> getWhere() { return where; } public void setWhere(List<Condition> where) { this.where = where; } }