All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cz.vutbr.web.csskit.fn.CounterImpl Maven / Gradle / Ivy

Go to download

jStyleParser is a CSS parser written in Java. It has its own application interface that is designed to allow an efficient CSS processing in Java and mapping the values to the Java data types. It parses CSS 2.1 style sheets into structures that can be efficiently assigned to DOM elements. It is intended be the primary CSS parser for the CSSBox library. While handling errors, it is user agent conforming according to the CSS specification.

The newest version!
/**
 * 
 */
package cz.vutbr.web.csskit.fn;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cz.vutbr.web.css.CSSProperty.ListStyleType;
import cz.vutbr.web.css.Term;
import cz.vutbr.web.css.TermFunction;
import cz.vutbr.web.css.TermIdent;
import cz.vutbr.web.css.TermList;
import cz.vutbr.web.csskit.TermFunctionImpl;

/**
 * @author burgetr
 *
 */
public class CounterImpl extends TermFunctionImpl implements TermFunction.Counter {

    public static Map allowedStyles;
    static {
        allowedStyles = new HashMap<>(ListStyleType.values().length - 4);
        for (ListStyleType item : ListStyleType.values()) {
            if (item != ListStyleType.INHERIT && item != ListStyleType.INITIAL
                    && item != ListStyleType.UNSET) {
                allowedStyles.put(item.toString(), item);
            }
        }
    }
    
    private String name;
    private ListStyleType style;
    
    public CounterImpl() {
        setValid(false);
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public ListStyleType getStyle() {
        return style;
    }
    
    @Override
    public TermList setValue(List> value) {
        super.setValue(value);
        List> args = getSeparatedValues(DEFAULT_ARG_SEP, true);
        if (args != null && (args.size() == 1 || args.size() == 2)) {
            //check for name
            if (args.get(0) instanceof TermIdent) {
                name = ((TermIdent) args.get(0)).getValue();
                setValid(true);
            }
            //an optional style
            if (args.size() == 2) {
                if (args.get(1) instanceof TermIdent) {
                    final String styleString = ((TermIdent) args.get(1)).getValue();
                    style = allowedStyles.get(styleString.toLowerCase());
                    if (style == null) {
                        setValid(false); //unknown style
                    }
                } else {
                    setValid(false);
                }
            }
        }
        return this;
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy