Coverage Report - org.crosswire.jsword.book.BookCategory
 
Classes in this File Line Coverage Branch Coverage Complexity
BookCategory
0%
0/30
0%
0/12
2.5
 
 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.book;
 21  
 
 22  
 import org.crosswire.jsword.JSMsg;
 23  
 
 24  
 /**
 25  
  * An Enumeration of the possible types of Book.
 26  
  *
 27  
  * @see gnu.lgpl.License The GNU Lesser General Public License for details.
 28  
  * @author Joe Walker
 29  
  * @author DM Smith
 30  
  */
 31  0
 public enum BookCategory {
 32  
     /** Books that are Bibles */
 33  
     // TRANSLATOR: The name for the book category consisting of Bibles.
 34  0
     BIBLE("Biblical Texts", JSMsg.gettext("Biblical Texts")),
 35  
 
 36  
     /** Books that are Dictionaries */
 37  
     // TRANSLATOR: The name for the book category consisting of Lexicons and Dictionaries.
 38  0
     DICTIONARY("Lexicons / Dictionaries", JSMsg.gettext("Dictionaries")),
 39  
 
 40  
     /** Books that are Commentaries */
 41  
     // TRANSLATOR: The name for the book category consisting of Commentaries.
 42  0
     COMMENTARY("Commentaries", JSMsg.gettext("Commentaries")),
 43  
 
 44  
     /** Books that are indexed by day. AKA, Daily Devotions */
 45  
     // TRANSLATOR: The name for the book category consisting of Daily Devotions, indexed by day of the year.
 46  0
     DAILY_DEVOTIONS("Daily Devotional", JSMsg.gettext("Daily Devotionals")),
 47  
 
 48  
     /** Books that map words from one language to another. */
 49  
     // TRANSLATOR: The name for the book category consisting of Glossaries that map words/phrases from one language into another.
 50  0
     GLOSSARY("Glossaries", JSMsg.gettext("Glossaries")),
 51  
 
 52  
     /** Books that are questionable. */
 53  
     // TRANSLATOR: The name for the book category consisting of books that are considered unorthodox by mainstream Christianity.
 54  0
     QUESTIONABLE("Cults / Unorthodox / Questionable Material", JSMsg.gettext("Cults / Unorthodox / Questionable Materials")),
 55  
 
 56  
     /** Books that are just essays. */
 57  
     // TRANSLATOR: The name for the book category consisting of just essays.
 58  0
     ESSAYS("Essays", JSMsg.gettext("Essays")),
 59  
 
 60  
     /** Books that are predominately images. */
 61  
     // TRANSLATOR: The name for the book category consisting of books containing mostly images.
 62  0
     IMAGES("Images", JSMsg.gettext("Images")),
 63  
 
 64  
     /** Books that are a collection of maps. */
 65  
     // TRANSLATOR: The name for the book category consisting of books containing mostly maps.
 66  0
     MAPS("Maps", JSMsg.gettext("Maps")),
 67  
 
 68  
     /** Books that are just books. */
 69  
     // TRANSLATOR: The name for the book category consisting of general books.
 70  0
     GENERAL_BOOK("Generic Books", JSMsg.gettext("General Books")),
 71  
 
 72  
     /** Books that are not any of the above. This is a catch all for new book categories. */
 73  
     // TRANSLATOR: The name for the book category consisting of books not in any of the other categories.
 74  0
     OTHER("Other", JSMsg.gettext("Other"));
 75  
 
 76  
     /**
 77  
      * @param name
 78  
      *            The name of the BookCategory
 79  
      * @param externalName the name of the BookCategory worthy of an end user
 80  
      */
 81  0
     BookCategory(String name, String externalName) {
 82  0
         this.name = name;
 83  0
         this.externalName = externalName;
 84  0
     }
 85  
 
 86  
     /**
 87  
      * Lookup method to convert from a String
 88  
      * 
 89  
      * @param name the internal name of a BookCategory
 90  
      * @return the matching BookCategory
 91  
      */
 92  
     public static BookCategory fromString(String name) {
 93  0
         for (BookCategory o : BookCategory.values()) {
 94  0
             if (o.name.equalsIgnoreCase(name)) {
 95  0
                 return o;
 96  
             }
 97  
         }
 98  0
         return OTHER;
 99  
     }
 100  
 
 101  
     /**
 102  
      * Lookup method to convert from a String
 103  
      * 
 104  
      * @param name the external name of a BookCategory
 105  
      * @return the matching BookCategory
 106  
      */
 107  
     public static BookCategory fromExternalString(String name) {
 108  0
         for (BookCategory o : BookCategory.values()) {
 109  0
             if (o.externalName.equalsIgnoreCase(name)) {
 110  0
                 return o;
 111  
             }
 112  
         }
 113  0
         return OTHER;
 114  
     }
 115  
 
 116  
     /**
 117  
      * Lookup method to convert from an integer
 118  
      * 
 119  
      * @param i the ordinal value of the BookCategory in this enumeration.
 120  
      * @return the i-th BookCategory
 121  
      */
 122  
     public static BookCategory fromInteger(int i) {
 123  0
         for (BookCategory o : BookCategory.values()) {
 124  0
             if (i == o.ordinal()) {
 125  0
                 return o;
 126  
             }
 127  
         }
 128  0
         return OTHER;
 129  
     }
 130  
 
 131  
     /**
 132  
      * @return the internal name.
 133  
      */
 134  
     public String getName() {
 135  0
         return name;
 136  
     }
 137  
 
 138  
     /**
 139  
      * @return the internationalized name.
 140  
      */
 141  
     @Override
 142  
     public String toString() {
 143  0
         return externalName;
 144  
     }
 145  
 
 146  
     /**
 147  
      * The names of the BookCategory
 148  
      */
 149  
     private transient String name;
 150  
     private transient String externalName;
 151  
 }