| /** |
| * Copyright 2011, Big Switch Networks, Inc. |
| * Originally created by David Erickson, Stanford University |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may |
| * not use this file except in compliance with the License. You may obtain |
| * a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations |
| * under the License. |
| **/ |
| |
| package net.floodlightcontroller.storage; |
| |
| import java.util.Date; |
| import java.util.Map; |
| |
| /** Interface to iterate over the results from a storage query. |
| * |
| * @author rob |
| * |
| */ |
| public interface IResultSet extends Iterable<IResultSet> { |
| |
| /** This should be called when the client is done using the result set. |
| * This will release any underlying resources (e.g. a database connection), |
| * which you don't want to wait for or rely on finalizers to release. |
| */ |
| public void close(); |
| |
| /** Advance to the next row in the result set. |
| * @return Returns true if there are more rows to process |
| * (i.e. if there's a valid current row) and false if there are no more |
| * rows in the result set. |
| */ |
| public boolean next(); |
| |
| /** Save/commit any pending updates to the data in the result set. |
| * This must be called after any calls to the set methods or deleting rows |
| * for the changes to be applied/committed to the storage source. Note that |
| * this doesn't need to be called after each set method or even after each |
| * row. It is typically called at the end after updating all of the |
| * rows in the result set. |
| */ |
| public void save(); |
| |
| /** Get the current row in the result set. This returns all of the |
| * columns in the current row. |
| * @return Map containing all of the columns in the current row, indexed |
| * by the column name. |
| */ |
| public Map<String,Object> getRow(); |
| |
| /** Delete the current row in the result set. |
| */ |
| public void deleteRow(); |
| |
| public boolean containsColumn(String columnName); |
| |
| public String getString(String columnName); |
| public short getShort(String columnName); |
| public int getInt(String columnName); |
| public long getLong(String columnName); |
| public float getFloat(String columnName); |
| public double getDouble(String columnName); |
| public boolean getBoolean(String columnName); |
| public byte getByte(String columnName); |
| public byte[] getByteArray(String columnName); |
| public Date getDate(String columnName); |
| |
| public Short getShortObject(String columnName); |
| public Integer getIntegerObject(String columnName); |
| public Long getLongObject(String columnName); |
| public Float getFloatObject(String columnName); |
| public Double getDoubleObject(String columnName); |
| public Boolean getBooleanObject(String columnName); |
| public Byte getByteObject(String columnName); |
| |
| public boolean isNull(String columnName); |
| |
| public void setString(String columnName, String value); |
| public void setShort(String columnName, short value); |
| public void setInt(String columnName, int value); |
| public void setLong(String columnName, long value); |
| public void setFloat(String columnName, float value); |
| public void setDouble(String columnName, double value); |
| public void setBoolean(String columnName, boolean value); |
| public void setByte(String columnName, byte value); |
| public void setByteArray(String columnName, byte[] byteArray); |
| public void setDate(String columnName, Date date); |
| |
| public void setShortObject(String columnName, Short value); |
| public void setIntegerObject(String columnName, Integer value); |
| public void setLongObject(String columnName, Long value); |
| public void setFloatObject(String columnName, Float value); |
| public void setDoubleObject(String columnName, Double value); |
| public void setBooleanObject(String columnName, Boolean value); |
| public void setByteObject(String columnName, Byte value); |
| |
| public void setNull(String columnName); |
| } |