Coverage Report - org.crosswire.jsword.passage.ReadOnlyKeyList
 
Classes in this File Line Coverage Branch Coverage Complexity
ReadOnlyKeyList
0%
0/44
0%
0/12
1.667
 
 1  
 /**
 2  
  * Distribution License:
 3  
  * JSword is free software; you can redistribute it and/or modify it under
 4  
  * the terms of the GNU Lesser General Public License, version 2.1 or later
 5  
  * as published by the Free Software Foundation. This program is distributed
 6  
  * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 7  
  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 8  
  * See the GNU Lesser General Public License for more details.
 9  
  *
 10  
  * The License is available on the internet at:
 11  
  *      http://www.gnu.org/copyleft/lgpl.html
 12  
  * or by writing to:
 13  
  *      Free Software Foundation, Inc.
 14  
  *      59 Temple Place - Suite 330
 15  
  *      Boston, MA 02111-1307, USA
 16  
  *
 17  
  * © CrossWire Bible Society, 2005 - 2016
 18  
  *
 19  
  */
 20  
 package org.crosswire.jsword.passage;
 21  
 
 22  
 import java.util.Iterator;
 23  
 
 24  
 import org.crosswire.jsword.JSOtherMsg;
 25  
 
 26  
 /**
 27  
  * A read-only wrapper around any writable implementation of Key.
 28  
  * 
 29  
  * @see gnu.lgpl.License The GNU Lesser General Public License for details.
 30  
  * @author Joe Walker
 31  
  */
 32  0
 public class ReadOnlyKeyList implements Key {
 33  
     /**
 34  
      * Simple ctor
 35  
      * 
 36  
      * @param keys the keys
 37  
      * @param ignore 
 38  
      */
 39  0
     public ReadOnlyKeyList(Key keys, boolean ignore) {
 40  0
         this.keys = keys;
 41  0
         this.ignore = ignore;
 42  0
     }
 43  
 
 44  
     /* (non-Javadoc)
 45  
      * @see org.crosswire.jsword.passage.Key#getCardinality()
 46  
      */
 47  
     public int getCardinality() {
 48  0
         return keys.getCardinality();
 49  
     }
 50  
 
 51  
     /* (non-Javadoc)
 52  
      * @see org.crosswire.jsword.passage.Key#canHaveChildren()
 53  
      */
 54  
     public boolean canHaveChildren() {
 55  0
         return keys.canHaveChildren();
 56  
     }
 57  
 
 58  
     /* (non-Javadoc)
 59  
      * @see org.crosswire.jsword.passage.Key#getChildCount()
 60  
      */
 61  
     public int getChildCount() {
 62  0
         return keys.getChildCount();
 63  
     }
 64  
 
 65  
     /* (non-Javadoc)
 66  
      * @see org.crosswire.jsword.passage.Key#isEmpty()
 67  
      */
 68  
     public boolean isEmpty() {
 69  0
         return keys.isEmpty();
 70  
     }
 71  
 
 72  
     /* (non-Javadoc)
 73  
      * @see org.crosswire.jsword.passage.Key#contains(org.crosswire.jsword.passage.Key)
 74  
      */
 75  
     public boolean contains(Key key) {
 76  0
         return keys.contains(key);
 77  
     }
 78  
 
 79  
     /* (non-Javadoc)
 80  
      * @see java.lang.Iterable#iterator()
 81  
      */
 82  
     public Iterator<Key> iterator() {
 83  0
         return keys.iterator();
 84  
     }
 85  
 
 86  
     /* (non-Javadoc)
 87  
      * @see org.crosswire.jsword.passage.Key#addAll(org.crosswire.jsword.passage.Key)
 88  
      */
 89  
     public void addAll(Key key) {
 90  0
         if (ignore) {
 91  0
             return;
 92  
         }
 93  
 
 94  0
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
 95  
     }
 96  
 
 97  
     /* (non-Javadoc)
 98  
      * @see org.crosswire.jsword.passage.Key#removeAll(org.crosswire.jsword.passage.Key)
 99  
      */
 100  
     public void removeAll(Key key) {
 101  0
         if (ignore) {
 102  0
             return;
 103  
         }
 104  
 
 105  0
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
 106  
     }
 107  
 
 108  
     /* (non-Javadoc)
 109  
      * @see org.crosswire.jsword.passage.Key#retainAll(org.crosswire.jsword.passage.Key)
 110  
      */
 111  
     public void retainAll(Key key) {
 112  0
         if (ignore) {
 113  0
             return;
 114  
         }
 115  
 
 116  0
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
 117  
     }
 118  
 
 119  
     /* (non-Javadoc)
 120  
      * @see org.crosswire.jsword.passage.Key#clear()
 121  
      */
 122  
     public void clear() {
 123  0
         if (ignore) {
 124  0
             return;
 125  
         }
 126  
 
 127  0
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
 128  
     }
 129  
 
 130  
     /* (non-Javadoc)
 131  
      * @see org.crosswire.jsword.passage.Key#getName()
 132  
      */
 133  
     public String getName() {
 134  0
         return keys.getName();
 135  
     }
 136  
 
 137  
     /* (non-Javadoc)
 138  
      * @see org.crosswire.jsword.passage.Key#getName(org.crosswire.jsword.passage.Key)
 139  
      */
 140  
     public String getName(Key base) {
 141  0
         return keys.getName(base);
 142  
     }
 143  
 
 144  
     /* (non-Javadoc)
 145  
      * @see org.crosswire.jsword.passage.Key#getRootName()
 146  
      */
 147  
     public String getRootName() {
 148  0
         return keys.getRootName();
 149  
     }
 150  
 
 151  
     /* (non-Javadoc)
 152  
      * @see org.crosswire.jsword.passage.Key#getOsisRef()
 153  
      */
 154  
     public String getOsisRef() {
 155  0
         return keys.getOsisRef();
 156  
     }
 157  
 
 158  
     /* (non-Javadoc)
 159  
      * @see org.crosswire.jsword.passage.Key#getOsisID()
 160  
      */
 161  
     public String getOsisID() {
 162  0
         return keys.getOsisID();
 163  
     }
 164  
 
 165  
     @Override
 166  
     public int hashCode() {
 167  0
         return keys.hashCode();
 168  
     }
 169  
 
 170  
     @Override
 171  
     public boolean equals(Object obj) {
 172  0
         return keys.equals(obj);
 173  
     }
 174  
 
 175  
     /* (non-Javadoc)
 176  
      * @see java.lang.Comparable#compareTo(java.lang.Object)
 177  
      */
 178  
     public int compareTo(Key o) {
 179  0
         return keys.compareTo(o);
 180  
     }
 181  
 
 182  
    /* (non-Javadoc)
 183  
      * @see org.crosswire.jsword.passage.Key#get(int)
 184  
      */
 185  
     public Key get(int index) {
 186  0
         return keys.get(index);
 187  
     }
 188  
 
 189  
     /* (non-Javadoc)
 190  
      * @see org.crosswire.jsword.passage.Key#indexOf(org.crosswire.jsword.passage.Key)
 191  
      */
 192  
     public int indexOf(Key that) {
 193  0
         return keys.indexOf(that);
 194  
     }
 195  
 
 196  
     /* (non-Javadoc)
 197  
      * @see org.crosswire.jsword.passage.Key#getParent()
 198  
      */
 199  
     public Key getParent() {
 200  0
         return keys.getParent();
 201  
     }
 202  
 
 203  
     /* (non-Javadoc)
 204  
      * @see org.crosswire.jsword.passage.Key#blur(int, org.crosswire.jsword.passage.RestrictionType)
 205  
      */
 206  
     public void blur(int by, RestrictionType restrict) {
 207  0
         if (ignore) {
 208  0
             return;
 209  
         }
 210  
 
 211  0
         throw new IllegalStateException(JSOtherMsg.lookupText("Cannot alter a read-only key list"));
 212  
     }
 213  
 
 214  
     @Override
 215  
     public ReadOnlyKeyList clone() {
 216  0
         ReadOnlyKeyList clone = null;
 217  
         try {
 218  0
             clone = (ReadOnlyKeyList) super.clone();
 219  0
             clone.keys = keys.clone();
 220  0
         } catch (CloneNotSupportedException e) {
 221  0
             assert false : e;
 222  0
         }
 223  0
         return clone;
 224  
     }
 225  
 
 226  
     /**
 227  
      * Do we ignore write requests or throw?
 228  
      */
 229  
     private boolean ignore;
 230  
 
 231  
     /**
 232  
      * The Key to which we proxy
 233  
      */
 234  
     private Key keys;
 235  
 
 236  
     /**
 237  
      * Serialization ID
 238  
      */
 239  
     private static final long serialVersionUID = -7947159638198641657L;
 240  
 }