From 02f75f777be87bd1db666f7a47b407589e2d77fb Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 21 Feb 2013 21:02:11 -0800 Subject: [PATCH] Implement BooleanGuacamoleProperty. --- .../properties/BooleanGuacamoleProperty.java | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 guacamole-ext/src/main/java/net/sourceforge/guacamole/properties/BooleanGuacamoleProperty.java diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/properties/BooleanGuacamoleProperty.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/properties/BooleanGuacamoleProperty.java new file mode 100644 index 000000000..add1d7e45 --- /dev/null +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/properties/BooleanGuacamoleProperty.java @@ -0,0 +1,72 @@ + +package net.sourceforge.guacamole.properties; + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is guacamole-ext. + * + * The Initial Developer of the Original Code is + * Michael Jumper. + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +import net.sourceforge.guacamole.GuacamoleException; +import net.sourceforge.guacamole.GuacamoleServerException; + +/** + * A GuacamoleProperty whose value is an boolean. Legal true values are "true", + * or "false". Case does not matter. + * + * @author Michael Jumper + */ +public abstract class BooleanGuacamoleProperty implements GuacamoleProperty { + + @Override + public Boolean parseValue(String value) throws GuacamoleException { + + // If no property provided, return null. + if (value == null) + return null; + + // If "true", return true + if (value.equalsIgnoreCase("true")) + return true; + + // If "false", return false + if (value.equalsIgnoreCase("false")) + return false; + + // Otherwise, fail + throw new GuacamoleServerException("Property \"" + getName() + + "\" must be either \"true\" or \"false\"."); + + } + +}