[jsword-svn] r2110 - in trunk: common-swing/src/main/java/org/crosswire/common/swing jsword/src/main/java/org/crosswire/jsword/book jsword/src/main/java/org/crosswire/jsword/book/basic jsword/src/main/java/org/crosswire/jsword/book/filter jsword/src/main/java/org/crosswire/jsword/book/filter/gbf jsword/src/main/java/org/crosswire/jsword/book/filter/osis jsword/src/main/java/org/crosswire/jsword/book/filter/plaintext jsword/src/main/java/org/crosswire/jsword/book/filter/thml jsword/src/main/java/org/crosswire/jsword/book/readings jsword/src/main/java/org/crosswire/jsword/book/sword jsword/src/main/java/org/crosswire/jsword/passage jsword/src/test/java/org/crosswire/jsword/passage

dmsmith at crosswire.org dmsmith at crosswire.org
Tue Mar 8 06:55:32 MST 2011


Author: dmsmith
Date: 2011-03-08 06:55:32 -0700 (Tue, 08 Mar 2011)
New Revision: 2110

Modified:
   trunk/common-swing/src/main/java/org/crosswire/common/swing/ActionFactory.java
   trunk/common-swing/src/main/java/org/crosswire/common/swing/CWAction.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/Bookmark.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookmark.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Filter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/plaintext/PlainTextFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractKeyBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractKeyList.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/BitwisePassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultLeafKeyList.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/DistinctPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Key.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/RangedPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyKeyList.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/SynchronizedPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java
Log:
JS-172 covariant returns for clone
Also cleaned up javadoc formatting a bit in those files.

Modified: trunk/common-swing/src/main/java/org/crosswire/common/swing/ActionFactory.java
===================================================================
--- trunk/common-swing/src/main/java/org/crosswire/common/swing/ActionFactory.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/common-swing/src/main/java/org/crosswire/common/swing/ActionFactory.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -238,7 +238,7 @@
      * @return the button
      */
     public JButton createJButton(CWAction action, ActionListener listener) {
-        CWAction act = (CWAction) action.clone();
+        CWAction act = action.clone();
         act.addActionListener(listener);
         return new JButton(act);
     }

Modified: trunk/common-swing/src/main/java/org/crosswire/common/swing/CWAction.java
===================================================================
--- trunk/common-swing/src/main/java/org/crosswire/common/swing/CWAction.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/common-swing/src/main/java/org/crosswire/common/swing/CWAction.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -47,7 +47,7 @@
 public class CWAction extends AbstractAction {
     /**
      * The icon to display when a large one is needed. This is still not part of
-     * Java as of 1.5
+     * Java as of 1.5. Now it is with Java 1.6!
      */
     public static final String LARGE_ICON = "LargeIcon";
 
@@ -76,6 +76,7 @@
         putValue(Action.SHORT_DESCRIPTION, tooltip);
         return this;
     }
+
     /**
      * Set or clear, using null, the icon on this action.
      * @param icon the small icon to set
@@ -121,7 +122,7 @@
     public CWAction setListener(ActionListener listener) {
         CWAction action = this;
         if (listener != null) {
-            action = (CWAction) action.clone();
+            action = action.clone();
             action.addActionListener(listener);
         }
         return action;
@@ -198,9 +199,11 @@
     /**
      * Create a clone that does not copy the listeners. These CWActions need to
      * have listeners added to be meaningful.
+     * 
+     * @see javax.swing.AbstractAction#clone()
      */
     @Override
-    public Object clone() {
+    public CWAction clone() {
         CWAction action = null;
         try {
             action = (CWAction) super.clone();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/Bookmark.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/Bookmark.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/Bookmark.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -97,5 +97,5 @@
      * 
      * @return A complete copy of ourselves
      */
-    Object clone();
+    Bookmark clone();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -44,7 +44,7 @@
      * Create a new Bookmark.
      */
     public static Bookmark getBookmark() {
-        return (Bookmark) instance.clone();
+        return instance.clone();
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookmark.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookmark.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookmark.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -46,87 +46,62 @@
         books = new ArrayList<Book>();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.Bookmark#addBook(org.crosswire.jsword.book.
-     * Book)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.Bookmark#addBook(org.crosswire.jsword.book.Book)
      */
     public void addBook(Book book) {
         books.add(book);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.book.Bookmark#getBooks()
      */
     public List<Book> getBooks() {
         return Collections.unmodifiableList(books);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.Bookmark#setSearchRequest(org.crosswire.jsword
-     * .index.search.SearchRequest)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.Bookmark#setSearchRequest(org.crosswire.jsword.index.search.SearchRequest)
      */
     public void setSearchRequest(SearchRequest request) {
         searchRequest = request;
         lookupRequest = null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.book.Bookmark#getSearchRequest()
      */
     public SearchRequest getSearchRequest() {
         return searchRequest;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.Bookmark#setLookupRequest(java.lang.String)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.Bookmark#setLookupRequest(java.lang.String)
      */
     public void setLookupRequest(String request) {
         lookupRequest = request;
         searchRequest = null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.book.Bookmark#getLookupRequest()
      */
     public String getLookupRequest() {
         return lookupRequest;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.book.Bookmark#getBookData()
      */
     public BookData getBookData() {
         return null;
     }
 
-    /**
-     * This needs to be declared here so that it is visible as a method on a
-     * derived Bookmark.
-     * 
-     * @return A complete copy of ourselves
-     */
     @Override
-    public Object clone() {
-        Object clone = null;
+    public DefaultBookmark clone() {
+        DefaultBookmark clone = null;
         try {
-            clone = super.clone();
+            clone = (DefaultBookmark) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Filter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Filter.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Filter.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -48,9 +48,9 @@
 
     /**
      * This needs to be declared here so that it is visible as a method on a
-     * derived Key.
+     * derived Filter.
      * 
      * @return A complete copy of ourselves
      */
-    Object clone();
+    Filter clone();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -105,14 +105,14 @@
             reply = deft;
         }
 
-        return (Filter) reply.clone();
+        return reply.clone();
     }
 
     /**
      * Find a filter given a lookup string
      */
     public static Filter getDefaultFilter() {
-        return (Filter) deft.clone();
+        return deft.clone();
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -44,12 +44,8 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public class GBFFilter implements Filter {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book
-     * .Book, org.crosswire.jsword.passage.Key, java.lang.String)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book.Book, org.crosswire.jsword.passage.Key, java.lang.String)
      */
     public List<Content> toOSIS(Book book, Key key, String plain) {
         DataPolice.setKey(key);
@@ -72,19 +68,15 @@
         return ele.removeContent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public GBFFilter clone() {
+        GBFFilter clone = null;
         try {
-            return super.clone();
+            clone = (GBFFilter) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
-        return null;
+        return clone;
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -105,19 +105,15 @@
         return ele.removeContent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public OSISFilter clone() {
+        OSISFilter clone = null;
         try {
-            return super.clone();
+            clone = (OSISFilter) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
-        return null;
+        return clone;
     }
 
     private Element cleanTags(Book book, Key key, String plain) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/plaintext/PlainTextFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/plaintext/PlainTextFilter.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/plaintext/PlainTextFilter.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -41,12 +41,8 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public class PlainTextFilter implements Filter {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book
-     * .Book, org.crosswire.jsword.passage.Key, java.lang.String)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book.Book, org.crosswire.jsword.passage.Key, java.lang.String)
      */
     public List<Content> toOSIS(Book book, Key key, String plain) {
         OSISUtil.OSISFactory factory = OSISUtil.factory();
@@ -67,18 +63,14 @@
         return ele.removeContent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public PlainTextFilter clone() {
+        PlainTextFilter clone = null;
         try {
-            return super.clone();
+            clone = (PlainTextFilter) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
-        return null;
+        return clone;
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -57,12 +57,8 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public class THMLFilter implements Filter {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book
-     * .Book, org.crosswire.jsword.passage.Key, java.lang.String)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.filter.Filter#toOSIS(org.crosswire.jsword.book.Book, org.crosswire.jsword.passage.Key, java.lang.String)
      */
     public List<Content> toOSIS(Book book, Key key, String plain) {
         DataPolice.setKey(key);
@@ -87,19 +83,15 @@
         return ele.removeContent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public THMLFilter clone() {
+        THMLFilter clone = null;
         try {
-            return super.clone();
+            clone = (THMLFilter) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
-        return null;
+        return clone;
     }
 
     private Element cleanParse(Book book, Key key, String plain) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -75,11 +75,6 @@
         this.date = date;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj) {
@@ -103,35 +98,20 @@
         return getName().equals(that.getName());
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return date.hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
     @Override
     public int compareTo(Key obj) {
         ReadingsKey that = (ReadingsKey) obj;
         return this.date.compareTo(that.date);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
-        return super.clone();
+    public ReadingsKey clone() {
+        return (ReadingsKey) super.clone();
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractKeyBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractKeyBackend.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractKeyBackend.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -47,18 +47,14 @@
         super(sbmd);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
@@ -72,38 +68,25 @@
         return getCardinality() == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
-     */
     @Override
     public boolean contains(Key key) {
         return indexOf(key) > 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new Iterator<Key>() {
 
-            /*
-             * (non-Javadoc)
-             * 
+            /* (non-Javadoc)
              * @see java.util.Iterator#hasNext()
              */
             public boolean hasNext() {
                 return here < count;
             }
 
-            /*
-             * (non-Javadoc)
-             * 
+            /* (non-Javadoc)
              * @see java.util.Iterator#next()
              */
             public Key next() throws NoSuchElementException {
@@ -113,9 +96,7 @@
                 return get(here++);
             }
 
-            /*
-             * (non-Javadoc)
-             * 
+            /* (non-Javadoc)
              * @see java.util.Iterator#remove()
              */
             public void remove() {
@@ -127,138 +108,97 @@
         };
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
         throw new UnsupportedOperationException();
     }
 
-    /* (non-Javadoc)
-     * @see org.crosswire.jsword.book.sword.AbstractBackend#setAliasKey(org.crosswire.jsword.passage.Key, org.crosswire.jsword.passage.Key)
-     */
     @Override
     public void setAliasKey(Key alias, Key source) throws IOException {
         throw new UnsupportedOperationException();
     }
 
-    /* (non-Javadoc)
-     * @see org.crosswire.jsword.book.sword.AbstractBackend#setRawText(org.crosswire.jsword.passage.Key, java.lang.String)
-     */
     @Override
     public void setRawText(Key key, String text) throws BookException, IOException {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public AbstractKeyBackend clone() {
+        AbstractKeyBackend clone = null;
         try {
-            super.clone();
+            clone = (AbstractKeyBackend) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
-        return this;
+        return clone;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return getBookMetaData().getInitials();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+   /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         // Since this can not be null
@@ -275,19 +215,12 @@
         return compareTo((Key) obj) == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return getName().hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key that) {
@@ -339,10 +272,8 @@
         return thisfirst.getName().compareTo(thatfirst.getName());
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -157,20 +157,15 @@
         this.parent = parent;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public TreeNode clone() {
+        TreeNode clone = null;
         try {
-            return super.clone();
+            clone = (TreeNode) super.clone();
         } catch (CloneNotSupportedException e) {
-            assert false;
+            assert false : e;
         }
-
-        return null;
+        return clone;
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractKeyList.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractKeyList.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractKeyList.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -40,31 +40,22 @@
         this.name = name;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return getCardinality() == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         return indexOf(key) >= 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         Key shared = new DefaultKeyList();
@@ -97,11 +88,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return getName();
@@ -116,9 +102,7 @@
         this.name = name;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
@@ -131,30 +115,22 @@
         return visitor.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISRef()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         DefaultKeyVisitor visitor = new OsisRefVisitor();
@@ -162,10 +138,8 @@
         return visitor.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         DefaultKeyVisitor visitor = new OsisIDVisitor();
@@ -173,11 +147,6 @@
         return visitor.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         // Since this can not be null
@@ -194,19 +163,12 @@
         return compareTo((Key) obj) == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return getName().hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key that) {
@@ -258,16 +220,11 @@
         return thisfirst.getName().compareTo(thatfirst.getName());
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
-        Object clone = null;
+    public AbstractKeyList clone() {
+        AbstractKeyList clone = null;
         try {
-            clone = super.clone();
+            clone = (AbstractKeyList) super.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }
@@ -286,24 +243,12 @@
             buffer = new StringBuilder();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see
-         * org.crosswire.jsword.passage.KeyVisitor#visitLeaf(org.crosswire.jsword
-         * .passage.Key)
-         */
         @Override
         public void visitLeaf(Key key) {
             buffer.append(key.getName());
             buffer.append(AbstractPassage.REF_PREF_DELIM);
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#toString()
-         */
         @Override
         public String toString() {
             String reply = buffer.toString();
@@ -323,13 +268,6 @@
      * the Passage, using OSIS names.
      */
     static class OsisRefVisitor extends NameVisitor {
-        /*
-         * (non-Javadoc)
-         * 
-         * @see
-         * org.crosswire.jsword.passage.KeyVisitor#visitLeaf(org.crosswire.jsword
-         * .passage.Key)
-         */
         @Override
         public void visitLeaf(Key key) {
             buffer.append(key.getOsisRef());
@@ -342,24 +280,12 @@
      * the Passage, using OSIS names.
      */
     static class OsisIDVisitor extends NameVisitor {
-        /*
-         * (non-Javadoc)
-         * 
-         * @see
-         * org.crosswire.jsword.passage.KeyVisitor#visitLeaf(org.crosswire.jsword
-         * .passage.Key)
-         */
-        @Override
+       @Override
         public void visitLeaf(Key key) {
             buffer.append(key.getOsisID());
             buffer.append(AbstractPassage.REF_OSIS_DELIM);
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#toString()
-         */
         @Override
         public String toString() {
             String reply = super.toString();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -70,9 +70,7 @@
         listeners = new ArrayList<PassageListener>();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key obj) {
@@ -102,13 +100,8 @@
         return thisfirst.compareTo(thatfirst);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public AbstractPassage clone() {
         // This gets us a shallow copy
         AbstractPassage copy = null;
 
@@ -125,11 +118,6 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         // Since this can not be null
@@ -156,20 +144,13 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return getName().hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         if (PassageUtil.isPersistentNaming() && originalName != null) {
@@ -196,17 +177,16 @@
         return retcode.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return getName();
     }
 
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getRootName()
+     */
     public String getRootName() {
         Iterator<Key> it = rangeIterator(RestrictionType.NONE);
         while (it.hasNext()) {
@@ -217,10 +197,8 @@
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getOSISName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         StringBuilder retcode = new StringBuilder();
@@ -240,10 +218,8 @@
         return retcode.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         StringBuilder retcode = new StringBuilder();
@@ -263,19 +239,12 @@
         return retcode.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getOverview()
      */
     public String getOverview() {
@@ -300,19 +269,15 @@
                 ));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         // Is there any content?
         return !iterator().hasNext();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#countVerses()
      */
     public int countVerses() {
@@ -325,10 +290,8 @@
         return count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#hasRanges(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#hasRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public boolean hasRanges(RestrictionType restrict) {
         int count = 0;
@@ -345,10 +308,8 @@
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#countRanges(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#countRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public int countRanges(RestrictionType restrict) {
         int count = 0;
@@ -362,9 +323,7 @@
         return count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#booksInPassage()
      */
     public int booksInPassage() {
@@ -382,9 +341,7 @@
         return book_count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#chaptersInPassage(int)
      */
     public int chaptersInPassage(int book) throws NoSuchVerseException {
@@ -407,9 +364,7 @@
         return chapter_count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#versesInPassage(int, int)
      */
     public int versesInPassage(int book, int chapter) throws NoSuchVerseException {
@@ -428,9 +383,7 @@
         return verse_count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getVerseAt(int)
      */
     public Verse getVerseAt(int offset) throws ArrayIndexOutOfBoundsException {
@@ -448,10 +401,8 @@
         return (Verse) retcode;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getVerseRangeAt(int, int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#getRangeAt(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public VerseRange getRangeAt(int offset, RestrictionType restrict) throws ArrayIndexOutOfBoundsException {
         Iterator<Key> it = rangeIterator(restrict);
@@ -468,21 +419,15 @@
         return (VerseRange) retcode;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#rangeIterator()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#rangeIterator(org.crosswire.jsword.passage.RestrictionType)
      */
     public Iterator<Key> rangeIterator(RestrictionType restrict) {
         return new VerseRangeIterator(iterator(), restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword
-     * .passage.Passage)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword.passage.Passage)
      */
     public boolean containsAll(Passage that) {
         Iterator<Key> that_it = null;
@@ -502,9 +447,7 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#trimVerses(int)
      */
     public Passage trimVerses(int count) {
@@ -514,7 +457,7 @@
         int i = 0;
         boolean overflow = false;
 
-        Passage remainder = (Passage) this.clone();
+        Passage remainder = this.clone();
 
         for (Key verse : this) {
             i++;
@@ -535,10 +478,8 @@
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#trimRanges(int, int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#trimRanges(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public Passage trimRanges(int count, RestrictionType restrict) {
         optimizeWrites();
@@ -547,7 +488,7 @@
         int i = 0;
         boolean overflow = false;
 
-        Passage remainder = (Passage) this.clone();
+        Passage remainder = this.clone();
 
         Iterator<Key> it = rangeIterator(restrict);
         while (it.hasNext()) {
@@ -571,12 +512,8 @@
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#addAll(org.crosswire.jsword.passage
-     * .Passage)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -605,12 +542,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#removeAll(org.crosswire.jsword.passage
-     * .Passage)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -638,11 +571,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -651,7 +581,7 @@
         raiseEventSuppresion();
         raiseNormalizeProtection();
 
-        Passage temp = (Passage) this.clone();
+        Passage temp = this.clone();
         for (Key verse : temp) {
             if (!that.contains(verse)) {
                 remove(verse);
@@ -664,10 +594,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
         optimizeWrites();
@@ -680,17 +608,15 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#blur(int, int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int verses, RestrictionType restrict) {
         optimizeWrites();
         raiseEventSuppresion();
         raiseNormalizeProtection();
 
-        Passage temp = (Passage) this.clone();
+        Passage temp = this.clone();
         Iterator<Key> it = temp.rangeIterator(RestrictionType.NONE);
 
         while (it.hasNext()) {
@@ -704,11 +630,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
      */
     public void writeDescription(Writer out) throws IOException {
         BufferedWriter bout = new BufferedWriter(out);
@@ -724,9 +647,7 @@
         bout.flush();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#readDescription(java.io.Reader)
      */
     public void readDescription(Reader in) throws IOException, NoSuchVerseException {
@@ -758,9 +679,7 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#optimizeReads()
      */
     public void optimizeReads() {
@@ -772,12 +691,8 @@
     protected void optimizeWrites() {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public void addPassageListener(PassageListener li) {
         synchronized (listeners) {
@@ -785,12 +700,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public void removePassageListener(PassageListener li) {
         synchronized (listeners) {
@@ -798,33 +709,23 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         Passage ref = KeyUtil.getPassage(key);
         return containsAll(ref);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return countVerses();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         int index = 0;
@@ -839,36 +740,28 @@
         return -1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
         return getVerseAt(index);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
@@ -1139,18 +1032,14 @@
             calculateNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return next_range != null;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public VerseRange next() throws NoSuchElementException {
@@ -1164,9 +1053,7 @@
             return retcode;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/BitwisePassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/BitwisePassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/BitwisePassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -79,16 +79,8 @@
         addVerses(refs);
     }
 
-    /**
-     * Get a copy of ourselves. Points to note: Call clone() not new() on member
-     * Objects, and on us. Do not use Copy Constructors! - they do not inherit
-     * well. Think about this needing to be synchronized If this is not
-     * cloneable then writing cloneable children is harder
-     * 
-     * @return A complete copy of ourselves
-     */
     @Override
-    public Object clone() {
+    public BitwisePassage clone() {
         // This gets us a shallow copy
         BitwisePassage copy = (BitwisePassage) super.clone();
 
@@ -97,42 +89,23 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#countVerses()
-     */
     @Override
     public int countVerses() {
         return store.cardinality();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
-     */
     @Override
     public boolean isEmpty() {
         return store.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new VerseIterator();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage
-     * .VerseBase)
-     */
     @Override
     public boolean contains(Key obj) {
         for (Key aKey : obj) {
@@ -145,12 +118,8 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage.Key)
      */
     public void add(Key obj) {
         optimizeWrites();
@@ -172,12 +141,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage.Key)
      */
     public void remove(Key obj) {
         optimizeWrites();
@@ -199,13 +164,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#addAll(org.crosswire.jsword.passage
-     * .Passage)
-     */
     @Override
     public void addAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -226,13 +184,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#removeAll(org.crosswire.jsword.passage
-     * .Passage)
-     */
     @Override
     public void removeAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -254,13 +205,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#retainAll(org.crosswire.jsword.passage
-     * .Passage)
-     */
     @Override
     public void retainAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -285,11 +229,6 @@
         fireIntervalRemoved(this, null, null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
-     */
     @Override
     public void clear() {
         optimizeWrites();
@@ -299,11 +238,6 @@
         fireIntervalRemoved(this, null, null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#blur(int, int)
-     */
     @Override
     public void blur(int verses, RestrictionType restrict) {
         assert verses > 0;
@@ -353,18 +287,14 @@
             calculateNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return next >= 0;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() throws NoSuchElementException {
@@ -383,9 +313,7 @@
             }
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultLeafKeyList.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultLeafKeyList.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultLeafKeyList.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -56,159 +56,118 @@
         this.osisName = osisName;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return name;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISRef()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         return osisName;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         return getOsisRef();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
         return parent;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return 1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         return this.equals(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new ItemIterator<Key>(this);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
@@ -218,12 +177,8 @@
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         if (this.equals(that)) {
@@ -232,30 +187,18 @@
         return -1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         if (this == obj) {
@@ -281,19 +224,12 @@
         return name.equals(that.name);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return name.hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key obj) {
@@ -301,18 +237,13 @@
         return name.compareTo(that.name);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public DefaultLeafKeyList clone() {
         DefaultLeafKeyList clone = null;
         try {
             clone = (DefaultLeafKeyList) super.clone();
             if (parent != null) {
-                clone.parent = (Key) parent.clone();
+                clone.parent = parent.clone();
             }
         } catch (CloneNotSupportedException e) {
             assert false : e;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/DistinctPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/DistinctPassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/DistinctPassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -85,7 +85,7 @@
      * @return A complete copy of ourselves
      */
     @Override
-    public Object clone() {
+    public DistinctPassage clone() {
         // This gets us a shallow copy
         DistinctPassage copy = (DistinctPassage) super.clone();
 
@@ -99,42 +99,23 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return store.iterator();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
-     */
     @Override
     public boolean isEmpty() {
         return store.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#countVerses()
-     */
     @Override
     public int countVerses() {
         return store.size();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage
-     * .VerseBase)
-     */
     @Override
     public boolean contains(Key obj) {
         for (Key aKey : obj) {
@@ -146,12 +127,8 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage.Key)
      */
     public void add(Key obj) {
         optimizeWrites();
@@ -173,12 +150,8 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage.Key)
      */
     public void remove(Key obj) {
         optimizeWrites();
@@ -200,11 +173,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
-     */
     @Override
     public void clear() {
         optimizeWrites();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Key.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Key.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Key.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -199,7 +199,7 @@
      * 
      * @return A complete copy of ourselves
      */
-    Object clone();
+    Key clone();
 
     /**
      * This needs to be declared here so that it is visible as a method on a

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -117,21 +117,11 @@
         addVerses(refs);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.AbstractPassage#isEmpty()
-     */
     @Override
     public boolean isEmpty() {
         return size == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.AbstractPassage#countVerses()
-     */
     @Override
     public int countVerses() {
         return size;
@@ -175,13 +165,8 @@
         this.total = total;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.AbstractPassage#clone()
-     */
     @Override
-    public Object clone() {
+    public PassageTally clone() {
         // This gets us a shallow copy
         PassageTally copy = (PassageTally) super.clone();
 
@@ -190,21 +175,11 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.AbstractPassage#toString()
-     */
     @Override
     public String toString() {
         return getName(0);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.AbstractPassage#getName()
-     */
     @Override
     public String getName() {
         return getName(0);
@@ -321,11 +296,6 @@
         return new OrderedVerseIterator(board);
     }
 
-    /**
-     * Iterate through the range elements in the current sort order
-     * 
-     * @return A range Iterator
-     */
     @Override
     public Iterator<Key> rangeIterator(RestrictionType restrict) {
         if (order == Order.BIBLICAL) {
@@ -438,12 +408,6 @@
         fireIntervalRemoved(this, null, null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
-     */
     @Override
     public void addAll(Key that) {
         optimizeWrites();
@@ -499,12 +463,6 @@
         // incrementMax(-1);
     }
 
-    /**
-     * Remove/Decrement these verses in the rankings
-     * 
-     * @param key
-     *            The verses to remove/decrement
-     */
     @Override
     public void removeAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -534,9 +492,6 @@
         // incrementMax(-1);
     }
 
-    /**
-     * Removes all of the Verses from this Passage.
-     */
     @Override
     public void clear() {
         optimizeWrites();
@@ -570,7 +525,7 @@
         int i = 0;
         boolean overflow = false;
 
-        Passage remainder = (Passage) this.clone();
+        Passage remainder = this.clone();
 
         for (Key verse : this) {
             if (i > count) {
@@ -606,16 +561,6 @@
         max = 1;
     }
 
-    /**
-     * Widen the range of the verses in this list. This is primarily for
-     * "find x within n verses of y" type applications.
-     * 
-     * @param verses
-     *            The number of verses to widen by
-     * @param restrict
-     *            How should we restrict the blurring?
-     * @see Passage
-     */
     @Override
     public void blur(int verses, RestrictionType restrict) {
         assert verses > 0;
@@ -629,7 +574,7 @@
 
             // This is a bit of a cheat, but there is no way I'm going
             // to do the math to speed up the restricted version
-            PassageTally temp = (PassageTally) this.clone();
+            PassageTally temp = this.clone();
             Iterator<Key> it = temp.rangeIterator(RestrictionType.NONE);
 
             while (it.hasNext()) {
@@ -843,18 +788,14 @@
             calculateNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return next <= BibleInfo.versesInBible();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() throws NoSuchElementException {
@@ -873,9 +814,7 @@
             }
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {
@@ -918,18 +857,14 @@
             last = null;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return it.hasNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() throws NoSuchElementException {
@@ -942,9 +877,7 @@
             }
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {
@@ -992,22 +925,12 @@
             this.tally = tally;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#hashCode()
-         */
         @Override
         public int hashCode() {
             int result = 31 + ord;
             return 31 * result + tally;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#equals(java.lang.Object)
-         */
         @Override
         public boolean equals(Object obj) {
             if (this == obj) {
@@ -1029,9 +952,7 @@
             return true;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.lang.Comparable#compareTo(java.lang.Object)
          */
         public int compareTo(TalliedVerse that) {
@@ -1086,18 +1007,14 @@
             last = null;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return it.hasNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public VerseRange next() throws NoSuchElementException {
@@ -1105,9 +1022,7 @@
             return last.range;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {
@@ -1143,22 +1058,12 @@
             this.tally = tally;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#hashCode()
-         */
         @Override
         public int hashCode() {
             int result = 31 + tally;
             return 31 * result + ((range == null) ? 0 : range.hashCode());
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see java.lang.Object#equals(java.lang.Object)
-         */
         @Override
         public boolean equals(Object obj) {
             if (this == obj) {
@@ -1184,9 +1089,7 @@
             return true;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.lang.Comparable#compareTo(java.lang.Object)
          */
         public int compareTo(TalliedVerseRange that) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/RangedPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/RangedPassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/RangedPassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -87,13 +87,8 @@
         normalize();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public RangedPassage clone() {
         // This gets us a shallow copy
         RangedPassage copy = (RangedPassage) super.clone();
 
@@ -107,11 +102,6 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#countRanges(int)
-     */
     @Override
     public int countRanges(RestrictionType restrict) {
         if (restrict.equals(RestrictionType.NONE)) {
@@ -121,11 +111,6 @@
         return super.countRanges(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#countVerses()
-     */
     @Override
     public int countVerses() {
         Iterator<Key> it = rangeIterator(RestrictionType.NONE);
@@ -139,20 +124,13 @@
         return count;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new VerseIterator(rangeIterator(RestrictionType.NONE));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#rangeIterator(int)
-     */
     @Override
     public final Iterator<Key> rangeIterator(RestrictionType restrict) {
         if (restrict.equals(RestrictionType.NONE)) {
@@ -162,23 +140,11 @@
         return new VerseRangeIterator(store.iterator(), restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
-     */
     @Override
     public boolean isEmpty() {
         return store.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage
-     * .VerseBase)
-     */
     @Override
     public boolean contains(Key obj) {
         // Even for the contains(VerseRange) case, the simple
@@ -200,12 +166,8 @@
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage.Key)
      */
     public void add(Key obj) {
         optimizeWrites();
@@ -222,11 +184,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
-     */
     @Override
     public void clear() {
         optimizeWrites();
@@ -235,12 +192,8 @@
         fireIntervalRemoved(this, null, null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage.Key)
      */
     public void remove(Key obj) {
         optimizeWrites();
@@ -280,13 +233,6 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#retainAll(org.crosswire.jsword.passage
-     * .Passage)
-     */
     @Override
     public void retainAll(Key key) {
         Passage that = KeyUtil.getPassage(key);
@@ -396,27 +342,21 @@
             }
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return real.hasNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() throws NoSuchElementException {
             return real.next();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {
@@ -441,27 +381,21 @@
             this.real = it;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() {
             throw new UnsupportedOperationException();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return next != null || real.hasNext();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyKeyList.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyKeyList.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyKeyList.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -41,67 +41,50 @@
         this.ignore = ignore;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return keys.getCardinality();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return keys.canHaveChildren();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return keys.getChildCount();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return keys.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         return keys.contains(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return keys.iterator();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         if (ignore) {
@@ -111,11 +94,8 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         if (ignore) {
@@ -125,11 +105,8 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         if (ignore) {
@@ -139,9 +116,7 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
@@ -152,115 +127,81 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return keys.getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return keys.getRootName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return keys.getName(base);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISRef()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         return keys.getOsisRef();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         return keys.getOsisID();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return keys.hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         return keys.equals(obj);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key o) {
         return keys.compareTo(o);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+   /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
         return keys.get(index);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         return keys.indexOf(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
         return keys.getParent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         if (ignore) {
@@ -270,17 +211,12 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public ReadOnlyKeyList clone() {
         ReadOnlyKeyList clone = null;
         try {
             clone = (ReadOnlyKeyList) super.clone();
-            clone.keys = (Key) keys.clone();
+            clone.keys = keys.clone();
         } catch (CloneNotSupportedException e) {
             assert false : e;
         }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyPassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/ReadOnlyPassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -50,11 +50,8 @@
         this.ignore = ignore;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         if (ignore) {
@@ -78,11 +75,8 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         if (ignore) {
@@ -92,257 +86,190 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         return ref.contains(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return ref.canHaveChildren();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return ref.getChildCount();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return ref.getCardinality();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return ref.iterator();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
         return ref.get(index);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         return ref.indexOf(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
         return ref.getParent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return ref.getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         return ref.getName(base);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return ref.getRootName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getOSISName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
         return ref.getOsisRef();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         return ref.getOsisID();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getOverview()
      */
     public String getOverview() {
         return ref.getOverview();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return ref.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#countVerses()
      */
     public int countVerses() {
         return ref.countVerses();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#hasRanges(org.crosswire.jsword.passage
-     * .RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#hasRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public boolean hasRanges(RestrictionType restrict) {
         return ref.hasRanges(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#countRanges(org.crosswire.jsword
-     * .passage.RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#countRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public int countRanges(RestrictionType restrict) {
         return ref.countRanges(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#trimVerses(int)
      */
     public Passage trimVerses(int count) {
         return ref.trimVerses(count);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#trimRanges(int,
-     * org.crosswire.jsword.passage.RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#trimRanges(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public Passage trimRanges(int count, RestrictionType restrict) {
         return ref.trimRanges(count, restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#booksInPassage()
      */
     public int booksInPassage() {
         return ref.booksInPassage();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#chaptersInPassage(int)
      */
     public int chaptersInPassage(int book) throws NoSuchVerseException {
         return ref.chaptersInPassage(book);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#versesInPassage(int, int)
      */
     public int versesInPassage(int book, int chapter) throws NoSuchVerseException {
         return ref.versesInPassage(book, chapter);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getVerseAt(int)
      */
     public Verse getVerseAt(int offset) throws ArrayIndexOutOfBoundsException {
         return ref.getVerseAt(offset);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getVerseRangeAt(int, int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#getRangeAt(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public VerseRange getRangeAt(int offset, RestrictionType restrict) throws ArrayIndexOutOfBoundsException {
         return ref.getRangeAt(offset, restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#rangeIterator(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#rangeIterator(org.crosswire.jsword.passage.RestrictionType)
      */
     public Iterator<Key> rangeIterator(RestrictionType restrict) {
         return ref.rangeIterator(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage.Key)
      */
     public void add(Key that) {
         if (ignore) {
@@ -352,12 +279,8 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage.Key)
      */
     public void remove(Key that) {
         if (ignore) {
@@ -367,21 +290,15 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword
-     * .passage.Passage)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword.passage.Passage)
      */
     public boolean containsAll(Passage that) {
         return ref.containsAll(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
         if (ignore) {
@@ -391,10 +308,8 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         if (ignore) {
@@ -404,9 +319,7 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#readDescription(java.io.Reader)
      */
     public void readDescription(Reader in) {
@@ -417,82 +330,49 @@
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only passage"));
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
      */
     public void writeDescription(Writer out) throws IOException {
         ref.writeDescription(out);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#optimizeReads()
      */
     public void optimizeReads() {
         ref.optimizeReads();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public void addPassageListener(PassageListener li) {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public void removePassageListener(PassageListener li) {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         return ref.equals(obj);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return ref.hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return ref.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public ReadOnlyPassage clone() {
         ReadOnlyPassage clone = null;
         try {
             clone = (ReadOnlyPassage) super.clone();
@@ -505,9 +385,7 @@
         return clone;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key o) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/SynchronizedPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/SynchronizedPassage.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/SynchronizedPassage.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -46,384 +46,281 @@
         this.ref = ref;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public synchronized void addAll(Key key) {
         ref.addAll(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public synchronized void removeAll(Key key) {
         ref.removeAll(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public synchronized void retainAll(Key key) {
         ref.retainAll(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#contains(org.crosswire.jsword.passage.Key)
      */
     public synchronized boolean contains(Key key) {
         return ref.contains(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public synchronized int getChildCount() {
         return ref.getChildCount();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public synchronized int getCardinality() {
         return ref.getCardinality();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public synchronized boolean canHaveChildren() {
         return ref.canHaveChildren();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public synchronized Iterator<Key> iterator() {
         return ref.iterator();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public synchronized Key get(int index) {
         return ref.get(index);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public synchronized int indexOf(Key that) {
         return ref.indexOf(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public synchronized Key getParent() {
         return ref.getParent();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName()
      */
     public synchronized String getName() {
         return ref.getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public synchronized String getName(Key base) {
         return ref.getName(base);
     }
 
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getRootName()
+     */
     public synchronized String getRootName() {
         return ref.getRootName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getOSISName()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public synchronized String getOsisRef() {
         return ref.getOsisRef();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public synchronized String getOsisID() {
         return ref.getOsisID();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getOverview()
      */
     public synchronized String getOverview() {
         return ref.getOverview();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#isEmpty()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public synchronized boolean isEmpty() {
         return ref.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#countVerses()
      */
     public synchronized int countVerses() {
         return ref.countVerses();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#hasRanges(org.crosswire.jsword.passage
-     * .RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#hasRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized boolean hasRanges(RestrictionType restrict) {
         return ref.hasRanges(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#countRanges(org.crosswire.jsword
-     * .passage.RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#countRanges(org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized int countRanges(RestrictionType restrict) {
         return ref.countRanges(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#trimVerses(int)
      */
     public synchronized Passage trimVerses(int count) {
         return ref.trimVerses(count);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#trimRanges(int,
-     * org.crosswire.jsword.passage.RestrictionType)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#trimRanges(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized Passage trimRanges(int count, RestrictionType restrict) {
         return ref.trimRanges(count, restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#booksInPassage()
      */
     public synchronized int booksInPassage() {
         return ref.booksInPassage();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#chaptersInPassage(int)
      */
     public synchronized int chaptersInPassage(int book) throws NoSuchVerseException {
         return ref.chaptersInPassage(book);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#versesInPassage(int, int)
      */
     public synchronized int versesInPassage(int book, int chapter) throws NoSuchVerseException {
         return ref.versesInPassage(book, chapter);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#getVerseAt(int)
      */
     public synchronized Verse getVerseAt(int offset) throws ArrayIndexOutOfBoundsException {
         return ref.getVerseAt(offset);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#getVerseRangeAt(int, int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#getRangeAt(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized VerseRange getRangeAt(int offset, RestrictionType restrict) throws ArrayIndexOutOfBoundsException {
         return ref.getRangeAt(offset, restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#rangeIterator(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#rangeIterator(org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized Iterator<Key> rangeIterator(RestrictionType restrict) {
         return ref.rangeIterator(restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#add(org.crosswire.jsword.passage.Key)
      */
     public synchronized void add(Key that) {
         ref.add(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage
-     * .VerseBase)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#remove(org.crosswire.jsword.passage.Key)
      */
     public synchronized void remove(Key that) {
         ref.remove(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword
-     * .passage.Passage)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#containsAll(org.crosswire.jsword.passage.Passage)
      */
     public synchronized boolean containsAll(Passage that) {
         return ref.containsAll(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Passage#clear()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#clear()
      */
     public synchronized void clear() {
         ref.clear();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public synchronized void blur(int by, RestrictionType restrict) {
         ref.blur(by, restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#readDescription(java.io.Reader)
      */
     public synchronized void readDescription(Reader in) throws IOException, NoSuchVerseException {
         ref.readDescription(in);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#writeDescription(java.io.Writer)
      */
     public synchronized void writeDescription(Writer out) throws IOException {
         ref.writeDescription(out);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Passage#optimizeReads()
      */
     public synchronized void optimizeReads() {
         ref.optimizeReads();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#addPassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public synchronized void addPassageListener(PassageListener li) {
         ref.addPassageListener(li);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire
-     * .jsword.passage.PassageListener)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Passage#removePassageListener(org.crosswire.jsword.passage.PassageListener)
      */
     public synchronized void removePassageListener(PassageListener li) {
         ref.removePassageListener(li);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public synchronized Object clone() {
+    public synchronized SynchronizedPassage clone() {
         SynchronizedPassage clone = null;
         try {
             clone = (SynchronizedPassage) super.clone();
@@ -436,21 +333,11 @@
         return clone;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public synchronized int hashCode() {
         return ref.hashCode();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public synchronized boolean equals(Object obj) {
         return ref.equals(obj);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -51,27 +51,21 @@
         this(text, null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return children.size();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
@@ -83,23 +77,11 @@
         return cardinality;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#isEmpty()
-     */
     @Override
     public boolean isEmpty() {
         return children.isEmpty();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
-     */
     @Override
     public boolean contains(Key key) {
         if (children.contains(key)) {
@@ -115,90 +97,65 @@
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new KeyIterator(this);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         children.add(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         children.remove(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
         children.clear();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
         return children.get(index);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         return children.indexOf(that);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
         return parent;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         log.warn("attempt to blur a non-blur-able list");
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
-        return super.clone();
+    public TreeKey clone() {
+        return (TreeKey) super.clone();
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -160,31 +160,20 @@
         set(ordinal);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return getName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return getName(null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         if (base != null && !(base instanceof Verse)) {
@@ -209,9 +198,7 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
@@ -223,9 +210,7 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
@@ -237,22 +222,15 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#getOSISId()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
         return getOsisRef();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public Verse clone() {
         Verse copy = null;
         try {
             copy = (Verse) super.clone();
@@ -268,11 +246,6 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         // Since this can not be null
@@ -304,20 +277,13 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return getOrdinal();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Comparable#compareTo(T)
+    /* (non-Javadoc)
+     * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key obj) {
         Verse that = null;
@@ -805,103 +771,76 @@
         // default ctor so I will ignore it here.
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return 1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         return this.equals(key);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#iterator()
+    /* (non-Javadoc)
+     * @see java.lang.Iterable#iterator()
      */
     public Iterator<Key> iterator() {
         return new ItemIterator<Key>(this);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
@@ -911,12 +850,8 @@
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         if (this.equals(that)) {
@@ -925,10 +860,8 @@
         return -1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         throw new UnsupportedOperationException();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -128,21 +128,15 @@
         verseCount = calcVerseCount(start, end);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getName()
      */
     public String getName() {
         return getName(null);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
      */
     public String getName(Key base) {
         if (PassageUtil.isPersistentNaming() && originalName != null) {
@@ -163,18 +157,14 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getRootName()
      */
     public String getRootName() {
         return start.getRootName();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getOsisRef()
      */
     public String getOsisRef() {
@@ -273,9 +263,7 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getOsisID()
      */
     public String getOsisID() {
@@ -326,11 +314,6 @@
         return buf.toString();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#toString()
-     */
     @Override
     public String toString() {
         return getName();
@@ -396,19 +379,14 @@
         return endBook - startBook + 1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#clone()
-     */
     @Override
-    public Object clone() {
+    public VerseRange clone() {
         // This gets us a shallow copy
         VerseRange copy = null;
         try {
             copy = (VerseRange) super.clone();
-            copy.start = (Verse) start.clone();
-            copy.end = (Verse) end.clone();
+            copy.start = start.clone();
+            copy.end = end.clone();
             copy.verseCount = verseCount;
             copy.originalName = originalName;
             copy.shaper = new NumberShaper();
@@ -419,11 +397,6 @@
         return copy;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
     @Override
     public boolean equals(Object obj) {
         // Since this can not be null
@@ -454,19 +427,12 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-     */
     @Override
     public int hashCode() {
         return (start.getOrdinal() << 16) + verseCount;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */
     public int compareTo(Key obj) {
@@ -719,9 +685,7 @@
         return new AbstractPassage.VerseRangeIterator(iterator(), restrict);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getParent()
      */
     public Key getParent() {
@@ -806,16 +770,26 @@
     /**
      * Returns a VerseRange that wraps the whole Bible
      * 
-     * @return The whole bible VerseRange
+     * @return The whole Bible VerseRange
      */
     public static VerseRange getWholeBibleVerseRange() {
         return whole;
     }
 
+    /**
+     * Returns a VerseRange that wraps the Old Testament
+     * 
+     * @return The Old Testament VerseRange
+     */
     public static VerseRange getOldTestamentVerseRange() {
         return otRange;
     }
 
+    /**
+     * Returns a VerseRange that wraps the New Testament
+     * 
+     * @return The New Testament VerseRange
+     */
     public static VerseRange getNewTestamentVerseRange() {
         return ntRange;
     }
@@ -982,18 +956,14 @@
             last = range.getEnd().getOrdinal();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#hasNext()
          */
         public boolean hasNext() {
             return next <= last;
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#next()
          */
         public Key next() throws NoSuchElementException {
@@ -1009,9 +979,7 @@
             }
         }
 
-        /*
-         * (non-Javadoc)
-         * 
+        /* (non-Javadoc)
          * @see java.util.Iterator#remove()
          */
         public void remove() throws UnsupportedOperationException {
@@ -1022,48 +990,36 @@
         private int last;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
      */
     public boolean canHaveChildren() {
         return false;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getChildCount()
      */
     public int getChildCount() {
         return 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#getCardinality()
      */
     public int getCardinality() {
         return verseCount;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#isEmpty()
      */
     public boolean isEmpty() {
         return verseCount == 0;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
      */
     public boolean contains(Key key) {
         if (key instanceof VerseRange) {
@@ -1081,68 +1037,49 @@
         return new VerseIterator(this);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#add(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
      */
     public void addAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#remove(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
      */
     public void removeAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#retain(org.crosswire.jsword.passage.Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
      */
     public void retainAll(Key key) {
         throw new UnsupportedOperationException();
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#clear()
      */
     public void clear() {
     }
 
-    /*
-     * (non-Javadoc)
-     * 
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.passage.Key#get(int)
      */
     public Key get(int index) {
         return null;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage
-     * .Key)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
      */
     public int indexOf(Key that) {
         return -1;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.crosswire.jsword.passage.Key#blur(int)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
      */
     public void blur(int by, RestrictionType restrict) {
         VerseRange newRange = restrict.blur(this, by, by);

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -151,7 +151,7 @@
 
     public void testAddPassageListener() throws Exception {
         FixturePassageListener li = new FixturePassageListener();
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.addPassageListener(li);
         assertTrue(li.check(0, 0, 0));
         temp.add(VerseFactory.fromString("Gen 1:7"));
@@ -240,12 +240,12 @@
     }
 
     public void testAdd() throws Exception {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.add(VerseFactory.fromString("Gen 1:2"));
         assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 7, 2:1, 3:1");
         temp.add(VerseFactory.fromString("Gen 1:4"));
         assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1");
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.add(VerseRangeFactory.fromString("Gen 1:2-4"));
         assertEquals(temp.getName(), "Gen 1:1, 3, 5, 2, 4, 7, 2:1, 3:1");
         try {
@@ -256,7 +256,7 @@
     }
 
     public void testUnAdd() throws Exception {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.unAdd(VerseFactory.fromString("Gen 1:5"));
         assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1");
         temp.unAdd(VerseFactory.fromString("Gen 1:5"));
@@ -266,24 +266,24 @@
     }
 
     public void testAddAll() throws Exception {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.addAll(keyf.getKey("Gen 1:2, Gen 1:4"));
         assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1");
     }
 
     public void testClear() {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.clear();
         assertEquals(temp.getName(), "");
         temp.clear();
         assertEquals(temp.getName(), "");
-        temp = (PassageTally) empty.clone();
+        temp = empty.clone();
         temp.clear();
         assertEquals(temp.getName(), "");
     }
 
     public void testBlur() {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.blur(1, RestrictionType.NONE);
         assertEquals(
                 temp.getNameAndTally(),
@@ -295,7 +295,7 @@
     }
 
     public void testFlatten() {
-        temp = (PassageTally) tally.clone();
+        temp = tally.clone();
         temp.flatten();
         assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1");
     }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java	2011-03-08 13:53:13 UTC (rev 2109)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java	2011-03-08 13:55:32 UTC (rev 2110)
@@ -328,7 +328,7 @@
         assertEquals(gen12.subtract(gen11), 1);
         assertEquals(gen11.subtract(gen11), 0);
         assertEquals(gen11.subtract(gen12), -1);
-        Verse last = (Verse) gen11.clone();
+        Verse last = gen11.clone();
         for (int i = 0; i < BibleInfo.versesInBible(); i += 99) {
             Verse next = last.add(i);
             assertEquals(next.subtract(last), i);




More information about the jsword-svn mailing list