001 /*
002 * Created on Apr 15, 2008
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
005 * in compliance with the License. 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 distributed under the License
010 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
011 * or implied. See the License for the specific language governing permissions and limitations under
012 * the License.
013 *
014 * Copyright @2008-2010 the original author or authors.
015 */
016 package org.fest.swing.util;
017
018 import static org.fest.util.Strings.concat;
019 import static org.fest.util.Strings.quote;
020
021 import java.awt.Color;
022
023 import org.fest.util.Strings;
024
025 /**
026 * Understands utility methods related to colors.
027 *
028 * @author Alex Ruiz
029 */
030 public final class Colors {
031
032 /**
033 * Returns a <code>{@link Color}</code> from the given <code>String</code> containing the hexadecimal coding of a
034 * color.
035 * @param hexString contains the hexadecimal coding of a color.
036 * @return a <code>Color</code> from the given <code>String</code> containing the hexadecimal coding of a color.
037 * @throws NullPointerException if the hexadecimal code is <code>null</code>.
038 * @throws IllegalArgumentException if the hexadecimal code is empty.
039 * @throws NumberFormatException if the hexadecimal code is empty.
040 */
041 public static Color colorFromHexString(String hexString) {
042 if (hexString == null) throw new NullPointerException("The hexadecimal code should not be null");
043 if (Strings.isEmpty(hexString)) throw new IllegalArgumentException("The hexadecimal code should not be empty");
044 try {
045 return new Color(Integer.parseInt(hexString, 16));
046 } catch (NumberFormatException e) {
047 throw new NumberFormatException(concat("The hexadecimal code ", quote(hexString), " is not a valid color code"));
048 }
049 }
050
051 private Colors() {}
052 }