/* * Copyright (c) 2002-2015, JIDE Software Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ package jidefx.utils.converter; import java.util.Locale; /** * {@link ObjectConverter} implementation for {@link Boolean} (and boolean primitive) values. The {@link * #toString(Boolean, ConverterContext)} will return a localized boolean text. The {@link #fromString(String, * ConverterContext)} will return true or false for both localized boolean text as well as the English version text * (such as "true" or "false"). */ public class BooleanConverter extends DefaultObjectConverter<Boolean> { public BooleanConverter() { } @Override public String toString(Boolean object, ConverterContext context) { if (Boolean.FALSE.equals(object)) { return getFalse(); } else if (Boolean.TRUE.equals(object)) { return getTrue(); } else { return getNull(); } } @Override public Boolean fromString(String string, ConverterContext context) { if (string.equalsIgnoreCase(getTrue())) { return Boolean.TRUE; } else if (string.equalsIgnoreCase("true")) { // in case the application runs under different locale, we still consider "true" is true. NON-NLS return Boolean.TRUE; } else if (string.equalsIgnoreCase(getFalse())) { return Boolean.FALSE; } else if (string.equalsIgnoreCase("false")) { // in case the application runs under different locale, we still consider "false" is false. NON-NLS return Boolean.FALSE; } else { return null; } } /** * Get the string to represent the true value. By default, it's "true". You could override this method to customize * the string. * * @return the string to represent the true value. */ protected String getTrue() { String s = ConverterResource.getResourceBundle(Locale.getDefault()).getString("Boolean.true"); return s == null ? getNull() : s.trim(); } /** * Get the string to represent the false value. By default, it's "false". You could override this method to * customize the string. * * @return the string to represent the false value. */ protected String getFalse() { String s = ConverterResource.getResourceBundle(Locale.getDefault()).getString("Boolean.false"); return s == null ? getNull() : s.trim(); } /** * Get the string to represent the null value. By default, it's "". You could override this method to customize the * string. * * @return the string to represent the null value. */ protected String getNull() { return ""; } }