/* * #! * Ontopia Engine * #- * Copyright (C) 2001 - 2013 The Ontopia Project * #- * 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.ontopia.persistence.proxy; /** * INTERNAL: Interface for representing two-dimensional (or * potentially even N-dimensional) query results.<p> * * Note: it is a goal that this interface is aligned with * net.ontopia.topicmaps.query.core.QueryResultIF. */ public interface QueryResultIF { /** * INTERNAL: Skip to the next row in the query result set. The * method returns false if the skip was not valid, i.e. we're at the * end of the result set. */ public boolean next(); /** * INTERNAL: Returns the number of fields that each row in the query * result set have. */ public int getWidth(); //! /** //! * PUBLIC: Returns the index of the named column. Returns -1 if the //! * column does not exist. The column index is zero-based. //! */ //! public int getIndex(String colname); /** * PUBLIC: Returns the names of the columns. */ public String[] getColumnNames(); /** * PUBLIC: Returns the name of the given column. The column index * is zero-based. * * @throws IndexOutOfBoundsException if there is no such column. */ public String getColumnName(int ix); /** * INTERNAL: Get the value of the field with the specified index * from the current result row. The index is zero-based. */ public Object getValue(int index); //! /** //! * PUBLIC: Returns the value in the given column in the current //! * match. Requires <code>next()</code> to have been called first. //! * @throws IllegalArgumentException if there is no such column. //! */ //! public Object getValue(String colname); /** * INTERNAL: Get the values of all fields from the current result * row. */ public Object[] getValues(); /** * INTERNAL: Reads the values of all fields from the current result * row into the specified array. */ public Object[] getValues(Object[] values); /** * INTERNAL: Closes the query result, which allows it to free its * resources. */ public void close(); }