📄 entitylistiterator.java
字号:
throw new GeneralRuntimeException("Error while checking to see if this is the last result", e); } } /** PLEASE NOTE: Because of the nature of the JDBC ResultSet interface this method can be very inefficient; it is much better to just use previous() until it returns null */ public boolean hasPrevious() { try { if (resultSet.isFirst() || resultSet.isBeforeFirst()) { return false; } else { // do a quick game to see if the resultSet is empty: // if we are not in the last or afterLast positions and we haven't made any values yet, the result set is empty so return false if (!haveMadeValue && !resultSet.isAfterLast() && !resultSet.isLast()) { return false; } else { return true; } } } catch (SQLException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error while checking to see if this is the first result", e); } } /** Moves the cursor to the next position and returns the GenericValue object for that position; if there is no next, returns null * For example, you could use the following to iterate through the results in an EntityListIterator: * * GenericValue nextValue = null; * while ((nextValue = (GenericValue) this.next()) != null) { ... } * */ public Object next() { try { if (resultSet.next()) { return currentGenericValue(); } else { return null; } } catch (SQLException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error getting the next result", e); } catch (GenericEntityException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error creating GenericValue", e); } } /** Returns the index of the next result, but does not guarantee that there will be a next result */ public int nextIndex() { try { return currentIndex() + 1; } catch (GenericEntityException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException(e.getNonNestedMessage(), e.getNested()); } } /** Moves the cursor to the previous position and returns the GenericValue object for that position; if there is no previous, returns null */ public Object previous() { try { if (resultSet.previous()) { return currentGenericValue(); } else { return null; } } catch (SQLException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error getting the previous result", e); } catch (GenericEntityException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error creating GenericValue", e); } } /** Returns the index of the previous result, but does not guarantee that there will be a previous result */ public int previousIndex() { try { return currentIndex() - 1; } catch (GenericEntityException e) { if (!closed) { try { this.close(); } catch (GenericEntityException e1) { Debug.logError(e1, "Error auto-closing EntityListIterator on error, so info below for more info on original error; close error: " + e1.toString(), module); } Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error getting the current index", e); } } public void setFetchSize(int rows) throws GenericEntityException { try { resultSet.setFetchSize(rows); } catch (SQLException e) { if (!closed) { this.close(); Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GenericEntityException("Error getting the next result", e); } } public List getCompleteList() throws GenericEntityException { try { // if the resultSet has been moved forward at all, move back to the beginning if (haveMadeValue && !resultSet.isBeforeFirst()) { // do a quick check to see if the ResultSet is empty resultSet.beforeFirst(); } List list = FastList.newInstance(); Object nextValue = null; while ((nextValue = this.next()) != null) { list.add(nextValue); } return list; } catch (SQLException e) { if (!closed) { this.close(); Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error getting results", e); } catch (GeneralRuntimeException e) { if (!closed) { this.close(); Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GenericEntityException(e.getNonNestedMessage(), e.getNested()); } } /** Gets a partial list of results starting at start and containing at most number elements. * Start is a one based value, ie 1 is the first element. */ public List getPartialList(int start, int number) throws GenericEntityException { try { if (number == 0) return FastList.newInstance(); List list = FastList.newInstance(); // just in case the caller missed the 1 based thingy if (start == 0) start = 1; // if starting on result 1 just call next() to avoid scrollable issues in some databases if (start == 1) { if (!resultSet.next()) { return list; } } else { // if can't reposition to desired index, throw exception if (!resultSet.absolute(start)) { // maybe better to just return an empty list here... return list; //throw new GenericEntityException("Could not move to the start position of " + start + ", there are probably not that many results for this find."); } } // get the first as the current one list.add(this.currentGenericValue()); Object nextValue = null; // init numRetreived to one since we have already grabbed the initial one int numRetreived = 1; //number > numRetreived comparison goes first to avoid the unwanted call to next while (number > numRetreived && (nextValue = this.next()) != null) { list.add(nextValue); numRetreived++; } return list; } catch (SQLException e) { if (!closed) { this.close(); Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GeneralRuntimeException("Error getting results", e); } catch (GeneralRuntimeException e) { if (!closed) { this.close(); Debug.logWarning("Warning: auto-closed EntityListIterator because of exception: " + e.toString(), module); } throw new GenericEntityException(e.getNonNestedMessage(), e.getNested()); } } public void add(Object obj) { throw new GeneralRuntimeException("CursorListIterator currently only supports read-only access"); } public void remove() { throw new GeneralRuntimeException("CursorListIterator currently only supports read-only access"); } public void set(Object obj) { throw new GeneralRuntimeException("CursorListIterator currently only supports read-only access"); } protected void finalize() throws Throwable { try { if (!closed) { this.close(); Debug.logError("\n====================================================================\n EntityListIterator Not Closed for Entity [" + (modelEntity==null ? "" : modelEntity.getEntityName()) + "], caught in Finalize\n ====================================================================\n", module); } } catch (Exception e) { Debug.logError(e, "Error closing the SQLProcessor in finalize EntityListIterator", module); } super.finalize(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -