You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2007/12/16 23:30:17 UTC

svn commit: r604725 - in /directory/sandbox/akarasulu/bigbang/apacheds: core-cursor/src/main/java/org/apache/directory/server/core/cursor/ jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/

Author: akarasulu
Date: Sun Dec 16 14:30:17 2007
New Revision: 604725

URL: http://svn.apache.org/viewvc?rev=604725&view=rev
Log:
messing around with using a pattern on complex cursors

Added:
    directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorState.java
    directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorStateEnum.java
Modified:
    directory/sandbox/akarasulu/bigbang/apacheds/jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/KeyCursor.java

Added: directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorState.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorState.java?rev=604725&view=auto
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorState.java (added)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorState.java Sun Dec 16 14:30:17 2007
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.directory.server.core.cursor;
+
+
+import java.io.IOException;
+
+
+/**
+ * A Cursor's state: cursor states leverage the State Pattern to isolate state
+ * specific transition logic with certain operations.  Not every Cursor is
+ * that complex so the implementor should decide whether or not using the
+ * State Pattern is over kill on a per Cursor implementation basis.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public interface CursorState<E>
+{
+    void before( E element ) throws IOException;
+
+    void after( E element ) throws IOException;
+
+    void beforeFirst() throws IOException;
+
+    void afterLast() throws IOException;
+
+    boolean relative( int offset ) throws IOException;
+
+    boolean first() throws IOException;
+
+    boolean last() throws IOException;
+
+    boolean previous() throws IOException;
+
+    boolean next() throws IOException;
+}

Added: directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorStateEnum.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorStateEnum.java?rev=604725&view=auto
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorStateEnum.java (added)
+++ directory/sandbox/akarasulu/bigbang/apacheds/core-cursor/src/main/java/org/apache/directory/server/core/cursor/CursorStateEnum.java Sun Dec 16 14:30:17 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.directory.server.core.cursor;
+
+
+/**
+ * An enumeration to represent the various states of a Cursor.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public enum CursorStateEnum
+{
+    /** the Cursor is positioned just before the first element */
+    BEFORE_FIRST,
+    /** the Cursor is positioned just after the last element */
+    AFTER_LAST,
+    /** the Cursor is positioned just before an element but not on any element */
+    BEFORE_ELEMENT,
+    /** the Cursor is positioned just after an element but not on any element */
+    AFTER_ELEMENT,
+    /** the Cursor is positioned on the first element */
+    ON_FIRST,
+    /** the Cursor is positioned on the last element */
+    ON_LAST,
+    /** the Cursor is positioned on an element */
+    ON_INTERIOR_ELEMENT,
+    /** the Cursor is closed and not operations can be performed on it */
+    CLOSED
+}

Modified: directory/sandbox/akarasulu/bigbang/apacheds/jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/KeyCursor.java
URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/KeyCursor.java?rev=604725&r1=604724&r2=604725&view=diff
==============================================================================
--- directory/sandbox/akarasulu/bigbang/apacheds/jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/KeyCursor.java (original)
+++ directory/sandbox/akarasulu/bigbang/apacheds/jdbm-cursor/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/cursor/KeyCursor.java Sun Dec 16 14:30:17 2007
@@ -47,7 +47,6 @@
 
     private BTree btree;
     private TupleBrowser browser;
-    private int pos = BEFORE_FIRST;
     private int size;  // cache the size to prevent needless lookups
     private boolean afterLast;
     private boolean beforeFirst;
@@ -70,7 +69,6 @@
     public void before( E element ) throws IOException
     {
         browser = btree.browse( element );
-        pos = UNDEFINED;
         success = false;
         afterLast = false;
         beforeFirst = false;
@@ -107,7 +105,6 @@
             afterLast = true;
             success = false;
             size = btree.size();
-            pos = size;
             browser = btree.browse( null );
         }
     }