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 }