From 71eeb0c3f810d63379fc8a40e130664cdcc83c7a Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 14 Jul 2015 19:29:18 +0000 Subject: [PATCH] Cleaner code for checking and casting the Color objects git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691064 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/usermodel/HSSFFontFormatting.java | 6 +----- .../poi/hssf/usermodel/HSSFPatternFormatting.java | 10 ++-------- src/java/org/apache/poi/hssf/util/HSSFColor.java | 7 +++++++ .../org/apache/poi/ss/usermodel/BorderFormatting.java | 4 ++-- .../java/org/apache/poi/xssf/usermodel/XSSFColor.java | 7 +++++++ .../apache/poi/xssf/usermodel/XSSFFontFormatting.java | 6 +----- .../poi/xssf/usermodel/XSSFPatternFormatting.java | 10 ++-------- 7 files changed, 22 insertions(+), 28 deletions(-) diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java b/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java index 68ae84d149..07f5fd4727 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java @@ -77,11 +77,7 @@ public final class HSSFFontFormatting implements org.apache.poi.ss.usermodel.Fon } public void setFontColor(Color color) { - if (color != null && !(color instanceof HSSFColor)) { - throw new IllegalArgumentException("Only HSSFColor objects are supported"); - } - - HSSFColor hcolor = (HSSFColor)color; + HSSFColor hcolor = HSSFColor.toHSSFColor(color); if (hcolor == null) { fontFormatting.setFontColorIndex((short)0); } else { diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java b/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java index 7be7945d17..1f521c509e 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java @@ -74,10 +74,7 @@ public class HSSFPatternFormatting implements org.apache.poi.ss.usermodel.Patter } public void setFillBackgroundColor(Color bg) { - if (bg != null && !(bg instanceof HSSFColor)) { - throw new IllegalArgumentException("Only HSSFColor objects are supported"); - } - HSSFColor hcolor = (HSSFColor)bg; + HSSFColor hcolor = HSSFColor.toHSSFColor(bg); if (hcolor == null) { setFillBackgroundColor((short)0); } else { @@ -86,10 +83,7 @@ public class HSSFPatternFormatting implements org.apache.poi.ss.usermodel.Patter } public void setFillForegroundColor(Color fg) { - if (fg != null && !(fg instanceof HSSFColor)) { - throw new IllegalArgumentException("Only HSSFColor objects are supported"); - } - HSSFColor hcolor = (HSSFColor)fg; + HSSFColor hcolor = HSSFColor.toHSSFColor(fg); if (hcolor == null) { setFillForegroundColor((short)0); } else { diff --git a/src/java/org/apache/poi/hssf/util/HSSFColor.java b/src/java/org/apache/poi/hssf/util/HSSFColor.java index f438e1b001..d7a1cb587e 100644 --- a/src/java/org/apache/poi/hssf/util/HSSFColor.java +++ b/src/java/org/apache/poi/hssf/util/HSSFColor.java @@ -204,6 +204,13 @@ public class HSSFColor implements Color { { return BLACK.hexString; } + + public static HSSFColor toHSSFColor(Color color) { + if (color != null && !(color instanceof HSSFColor)) { + throw new IllegalArgumentException("Only HSSFColor objects are supported"); + } + return (HSSFColor)color; + } /** * Class BLACK diff --git a/src/java/org/apache/poi/ss/usermodel/BorderFormatting.java b/src/java/org/apache/poi/ss/usermodel/BorderFormatting.java index c15dc269cb..5e1154d9b4 100644 --- a/src/java/org/apache/poi/ss/usermodel/BorderFormatting.java +++ b/src/java/org/apache/poi/ss/usermodel/BorderFormatting.java @@ -20,8 +20,8 @@ package org.apache.poi.ss.usermodel; /** - * @author Dmitriy Kumshayev - * @author Yegor Kozlov + * High level representation for Border Formatting component + * of Conditional Formatting settings */ public interface BorderFormatting { /** No border */ diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java index 3082e53878..d2dc28dda7 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java @@ -316,6 +316,13 @@ public class XSSFColor implements Color { return ctColor; } + public static XSSFColor toXSSFColor(Color color) { + if (color != null && !(color instanceof XSSFColor)) { + throw new IllegalArgumentException("Only XSSFColor objects are supported"); + } + return (XSSFColor)color; + } + public int hashCode(){ return ctColor.toString().hashCode(); } diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFontFormatting.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFontFormatting.java index 40ce715f48..e788cf893b 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFontFormatting.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFontFormatting.java @@ -97,11 +97,7 @@ public class XSSFFontFormatting implements FontFormatting { } public void setFontColor(Color color) { - if (color != null && !(color instanceof XSSFColor)) { - throw new IllegalArgumentException("Only XSSFColor objects are supported"); - } - - XSSFColor xcolor = (XSSFColor)color; + XSSFColor xcolor = XSSFColor.toXSSFColor(color); if (xcolor == null) { _font.getColorList().clear(); } else { diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPatternFormatting.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPatternFormatting.java index 898fa9b7aa..75989f3e79 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPatternFormatting.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPatternFormatting.java @@ -63,10 +63,7 @@ public class XSSFPatternFormatting implements PatternFormatting { } public void setFillBackgroundColor(Color bg) { - if (bg != null && !(bg instanceof XSSFColor)) { - throw new IllegalArgumentException("Only XSSFColor objects are supported"); - } - XSSFColor xcolor = (XSSFColor)bg; + XSSFColor xcolor = XSSFColor.toXSSFColor(bg); setFillBackgroundColor(xcolor.getCTColor()); } public void setFillBackgroundColor(short bg) { @@ -80,10 +77,7 @@ public class XSSFPatternFormatting implements PatternFormatting { } public void setFillForegroundColor(Color fg) { - if (fg != null && !(fg instanceof XSSFColor)) { - throw new IllegalArgumentException("Only XSSFColor objects are supported"); - } - XSSFColor xcolor = (XSSFColor)fg; + XSSFColor xcolor = XSSFColor.toXSSFColor(fg); setFillForegroundColor(xcolor.getCTColor()); } public void setFillForegroundColor(short fg) { -- 2.39.5