001 /* 002 * Copyright 2004 Jonathan M. Lehr 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 005 * You may obtain a copy of the License at 006 * 007 * http://www.apache.org/licenses/LICENSE-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, software 010 * distributed under the License is distributed on an "AS IS" BASIS, 011 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012 * See the License for the specific language governing permissions and 013 * limitations under the License. 014 * 015 * MODIFIED BY THE KUALI FOUNDATION 016 */ 017 // begin Kuali Foundation modification 018 package org.kuali.rice.kns.web.format; 019 // end Kuali Foundation modification 020 021 import java.util.Arrays; 022 import java.util.List; 023 024 import org.kuali.rice.kns.util.RiceKeyConstants; 025 026 /** 027 * begin Kuali Foundation modification 028 * This class is used to format boolean values. 029 * end Kuali Foundation modification 030 * @author Kuali Rice Team (rice.collab@kuali.org) 031 */ 032 public class BooleanFormatter extends Formatter { 033 // begin Kuali Foundation modification 034 // deleted line: public static final String BOOLEAN_ERROR_KEY = "error.boolean"; 035 private static final long serialVersionUID = -4109390572922205211L; 036 037 // deleted line: static final String CONVERT_MSG = "Unable to create Boolean object from "; 038 // end Kuali Foundation modification 039 040 // begin Kuali Foundation modification 041 // "y" and "t" added to TRUE_VALUES, "n" and "f" added to FALSE_VALUES 042 static final List TRUE_VALUES = Arrays.asList(new String[] { "yes", "y", "true", "t", "on", "1", "enabled" }); 043 static final List FALSE_VALUES = Arrays.asList(new String[] { "no", "n", "false", "f", "off", "0", "disabled" }); 044 // end Kuali Foundation modification 045 046 /* begin Kuali Foundation modification 047 deleted following method */ 048 // /** 049 // * Returns the error key for this Formatter. 050 // * 051 // * @see Formatter#getErrorKey() 052 // */ 053 // public String getErrorKey() { 054 // return BOOLEAN_ERROR_KEY; 055 // } 056 // end Kuali Foundation modification 057 058 protected Object convertToObject(String target) { 059 if (Formatter.isEmptyValue(target)) 060 return null; 061 062 String stringValue = target.getClass().isArray() ? unwrapString(target) : (String) target; 063 stringValue = stringValue.trim().toLowerCase(); 064 065 if (TRUE_VALUES.contains(stringValue)) 066 return Boolean.TRUE; 067 if (FALSE_VALUES.contains(stringValue)) 068 return Boolean.FALSE; 069 070 // begin Kuali Foundation modification 071 // was: throw new FormatException(CONVERT_MSG + stringValue); 072 throw new FormatException("converting", RiceKeyConstants.ERROR_BOOLEAN, stringValue); 073 // end Kuali Foundation modification 074 } 075 076 public Object format(Object target) { 077 if (target == null) 078 return null; 079 // begin Kuali Foundation modification 080 if (target instanceof String) { 081 return target; 082 } 083 // end Kuali Foundation modification 084 085 boolean isTrue = ((Boolean) target).booleanValue(); 086 087 return isTrue ? "Yes" : "No"; 088 } 089 }