extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/json/JSONOptions.java

Code
Comments
Other
Rev Date Author Line
4257 30 Nov 16 nicklas 1 package net.sf.basedb.opengrid.json;
4257 30 Nov 16 nicklas 2
4257 30 Nov 16 nicklas 3 import java.util.HashSet;
4257 30 Nov 16 nicklas 4 import java.util.Set;
4257 30 Nov 16 nicklas 5
4317 23 Jan 17 nicklas 6 import net.sf.basedb.core.DbControl;
4257 30 Nov 16 nicklas 7 import net.sf.basedb.opengrid.config.AbstractLockable;
4257 30 Nov 16 nicklas 8
4257 30 Nov 16 nicklas 9 /**
4257 30 Nov 16 nicklas 10   Options for converting other information to
4257 30 Nov 16 nicklas 11   JSON data.
4257 30 Nov 16 nicklas 12
4257 30 Nov 16 nicklas 13   @author nicklas
4257 30 Nov 16 nicklas 14   @since 1.0
4257 30 Nov 16 nicklas 15 */
4257 30 Nov 16 nicklas 16 public class JSONOptions
4257 30 Nov 16 nicklas 17   extends AbstractLockable<JSONOptions>
4257 30 Nov 16 nicklas 18 {
4257 30 Nov 16 nicklas 19   /**
4257 30 Nov 16 nicklas 20     Use default options.
4257 30 Nov 16 nicklas 21   */
4257 30 Nov 16 nicklas 22   public static final JSONOptions DEFAULT = new JSONOptions();
4257 30 Nov 16 nicklas 23   
4317 23 Jan 17 nicklas 24   private final DbControl dc;
4257 30 Nov 16 nicklas 25   private final Set<JSONOption> options;
4317 23 Jan 17 nicklas 26
4257 30 Nov 16 nicklas 27   /**
4257 30 Nov 16 nicklas 28     Create a new options instance.
4257 30 Nov 16 nicklas 29   */
4257 30 Nov 16 nicklas 30   public JSONOptions()
4257 30 Nov 16 nicklas 31   {
4317 23 Jan 17 nicklas 32     this(null);
4317 23 Jan 17 nicklas 33   }
4317 23 Jan 17 nicklas 34   
4317 23 Jan 17 nicklas 35   /**
4317 23 Jan 17 nicklas 36     Create a new options instance with the possibility
4317 23 Jan 17 nicklas 37     to access the BASE database.
4317 23 Jan 17 nicklas 38   */
4317 23 Jan 17 nicklas 39   public JSONOptions(DbControl dc)
4317 23 Jan 17 nicklas 40   {
4317 23 Jan 17 nicklas 41     this.dc = dc;
4257 30 Nov 16 nicklas 42     this.options = new HashSet<>();
4257 30 Nov 16 nicklas 43   }
4257 30 Nov 16 nicklas 44   
4257 30 Nov 16 nicklas 45   /**
4317 23 Jan 17 nicklas 46     Get a DbControl which can be used to retreive
4317 23 Jan 17 nicklas 47     information from the BASE database. Can be null.
4317 23 Jan 17 nicklas 48   */
4317 23 Jan 17 nicklas 49   public DbControl getDbControl()
4317 23 Jan 17 nicklas 50   {
4317 23 Jan 17 nicklas 51     return dc;
4317 23 Jan 17 nicklas 52   }
4317 23 Jan 17 nicklas 53   
4317 23 Jan 17 nicklas 54   /**
4257 30 Nov 16 nicklas 55     Checks if the given option has been enabled.
4257 30 Nov 16 nicklas 56   */
4257 30 Nov 16 nicklas 57   public boolean isEnabled(JSONOption option)
4257 30 Nov 16 nicklas 58   {
4257 30 Nov 16 nicklas 59     return options.contains(option);
4257 30 Nov 16 nicklas 60   }
4257 30 Nov 16 nicklas 61   
4257 30 Nov 16 nicklas 62   /**
4257 30 Nov 16 nicklas 63     Enable the given option.
4257 30 Nov 16 nicklas 64     @throws IllegalStateException If this instance has been locked
4257 30 Nov 16 nicklas 65   */
4257 30 Nov 16 nicklas 66   public void enable(JSONOption option)
4257 30 Nov 16 nicklas 67   {
4257 30 Nov 16 nicklas 68     checkLocked("enable(" + option + ")");
4257 30 Nov 16 nicklas 69     options.add(option);
4257 30 Nov 16 nicklas 70   }
4257 30 Nov 16 nicklas 71   
4257 30 Nov 16 nicklas 72   /**
4257 30 Nov 16 nicklas 73     Disable the given option.
4257 30 Nov 16 nicklas 74     @throws IllegalStateException If this instance has been locked
4257 30 Nov 16 nicklas 75   */
4257 30 Nov 16 nicklas 76   public void disable(JSONOption option)
4257 30 Nov 16 nicklas 77   {
4257 30 Nov 16 nicklas 78     checkLocked("disable(" + option + ")");
4257 30 Nov 16 nicklas 79     options.remove(option);
4257 30 Nov 16 nicklas 80   }
4257 30 Nov 16 nicklas 81   
4257 30 Nov 16 nicklas 82 }