package com.mozz.htmlnative.parser; import com.mozz.htmlnative.css.Background; import com.mozz.htmlnative.css.Styles; /** * @author Yang Tao, 17/5/10. */ public final class StyleItemParser { private static final CssParser.StyleHolder STYLE_HOLDER = new CssParser.StyleHolder(); /** * to parse single style string into {@link CssParser.StyleHolder}. For example, 'background:url * (http://www.abc.com/efg.jpg)' will become :<br/> * StyleHolder.key = background<br/> * StyleHolder.obj = {@link Background}<br/> * * @param styleName, raw style name * @param styleValue, raw style string * @param oldStyleObject, old style object, if you have one; or null. * @return StyleHolder */ public static CssParser.StyleHolder parseStyleSingle(String styleName, String styleValue, Object oldStyleObject) { STYLE_HOLDER.key = null; STYLE_HOLDER.obj = null; if (styleName.startsWith(Styles.ATTR_BACKGROUND) || styleName.startsWith(Styles .ATTR_HN_BACKGROUND)) { Object val = Background.createOrChange(styleName, styleValue, oldStyleObject); STYLE_HOLDER.key = Styles.ATTR_BACKGROUND; STYLE_HOLDER.obj = val; return STYLE_HOLDER; } else { STYLE_HOLDER.key = styleName; STYLE_HOLDER.obj = styleValue.trim(); return STYLE_HOLDER; } } public static String parseKey(String key) { if (key.startsWith(Styles.ATTR_BACKGROUND) || key.startsWith(Styles.ATTR_HN_BACKGROUND)) { return Styles.ATTR_BACKGROUND; } else { return key; } } }