001package com.hfg.xml.msofficexml.xlsx.spreadsheetml.style;
002
003import com.hfg.css.CSSBorderStyle;
004
005import java.util.HashMap;
006import java.util.Map;
007
008public class SsmlBorderStyle
009{
010   private static final Map<String, SsmlBorderStyle> sValueMap = new HashMap<String, SsmlBorderStyle>(25);
011
012   private String mName;
013
014   public static final SsmlBorderStyle dashDot                = new SsmlBorderStyle("dashDot");
015   public static final SsmlBorderStyle dashDotDot             = new SsmlBorderStyle("dashDotDot");
016   public static final SsmlBorderStyle dashed                 = new SsmlBorderStyle("dashed");
017   public static final SsmlBorderStyle dbl                    = new SsmlBorderStyle("double");  // Can't call it 'double' because that's a reserved word
018   public static final SsmlBorderStyle dotted                 = new SsmlBorderStyle("dotted");
019   public static final SsmlBorderStyle hair                   = new SsmlBorderStyle("hair");
020   public static final SsmlBorderStyle medium                 = new SsmlBorderStyle("medium");
021   public static final SsmlBorderStyle mediumDashDot          = new SsmlBorderStyle("mediumDashDot");
022   public static final SsmlBorderStyle mediumDashDotDot       = new SsmlBorderStyle("mediumDashDotDot");
023   public static final SsmlBorderStyle mediumDashed           = new SsmlBorderStyle("mediumDashed");
024   public static final SsmlBorderStyle none                   = new SsmlBorderStyle("none");
025   public static final SsmlBorderStyle slantDashDot           = new SsmlBorderStyle("slantDashDot");
026   public static final SsmlBorderStyle thick                  = new SsmlBorderStyle("thick");
027   public static final SsmlBorderStyle thin                   = new SsmlBorderStyle("thin");
028
029
030   //---------------------------------------------------------------------------
031   private SsmlBorderStyle(String inValue)
032   {
033      mName = inValue;
034      sValueMap.put(mName, this);
035   }
036
037   //---------------------------------------------------------------------------
038   public String name()
039   {
040      return mName;
041   }
042
043   //---------------------------------------------------------------------------
044   @Override
045   public String toString()
046   {
047      return name();
048   }
049
050   //---------------------------------------------------------------------------
051   @Override
052   public int hashCode()
053   {
054      return mName.hashCode();
055   }
056
057   //---------------------------------------------------------------------------
058   public static SsmlBorderStyle valueOf(String inString)
059   {
060      return sValueMap.get(inString);
061   }
062
063   //---------------------------------------------------------------------------
064   public static SsmlBorderStyle valueOf(CSSBorderStyle inCSSStyle)
065   {
066      SsmlBorderStyle value = null;
067
068      if (inCSSStyle != null)
069      {
070         if (inCSSStyle == CSSBorderStyle.NONE)
071         {
072            value = SsmlBorderStyle.none;
073         }
074         else if (inCSSStyle == CSSBorderStyle.SOLID)
075         {
076            value = SsmlBorderStyle.medium;
077         }
078         else if (inCSSStyle == CSSBorderStyle.DOUBLE)
079         {
080            value = SsmlBorderStyle.dbl;
081         }
082         else if (inCSSStyle == CSSBorderStyle.DASHED)
083         {
084            value = SsmlBorderStyle.dashed;
085         }
086         else if (inCSSStyle == CSSBorderStyle.DOTTED)
087         {
088            value = SsmlBorderStyle.dotted;
089         }
090         else if (inCSSStyle == CSSBorderStyle.INSET)
091         {
092            value = SsmlBorderStyle.medium;
093         }
094         else if (inCSSStyle == CSSBorderStyle.OUTSET)
095         {
096            value = SsmlBorderStyle.medium;
097         }
098      }
099
100      return value;
101   }
102
103}