public String process(String css) { CascadingStyleSheet cascadingStyleSheet = CSSReader.readFromString( css, CCharset.CHARSET_UTF_8_OBJ, ECSSVersion.CSS30, new DoNothingCSSParseErrorHandler()); processRules(cascadingStyleSheet.getAllRules()); return _cssWriter.getCSSAsString(cascadingStyleSheet); }
@Nonnull public CascadingStyleSheet createCascadingStyleSheetFromNode(@Nonnull final CSSNode aNode) { _expectNodeType(aNode, ECSSNodeType.ROOT); final CascadingStyleSheet ret = new CascadingStyleSheet(); ret.setSourceLocation(aNode.getSourceLocation()); for (final CSSNode aChildNode : aNode) { if (ECSSNodeType.CHARSET.isNode(aChildNode, m_eVersion)) { // Ignore because this was handled when reading! } else if (ECSSNodeType.IMPORTRULE.isNode(aChildNode, m_eVersion)) ret.addImportRule(_createImportRule(aChildNode)); else if (ECSSNodeType.NAMESPACERULE.isNode(aChildNode, m_eVersion)) ret.addNamespaceRule(_createNamespaceRule(aChildNode)); else if (ECSSNodeType.STYLERULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createStyleRule(aChildNode)); else if (ECSSNodeType.PAGERULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createPageRule(aChildNode)); else if (ECSSNodeType.MEDIARULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createMediaRule(aChildNode)); else if (ECSSNodeType.FONTFACERULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createFontFaceRule(aChildNode)); else if (ECSSNodeType.KEYFRAMESRULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createKeyframesRule(aChildNode)); else if (ECSSNodeType.VIEWPORTRULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createViewportRule(aChildNode)); else if (ECSSNodeType.SUPPORTSRULE.isNode(aChildNode, m_eVersion)) ret.addRule(_createSupportsRule(aChildNode)); else if (ECSSNodeType.UNKNOWNRULE.isNode(aChildNode, m_eVersion)) { // Unknown rule indicates either // 1. a parsing error // 2. a non-standard rule ret.addRule(_createUnknownRule(aChildNode)); } else s_aLogger.error( "Unsupported child of " + ECSSNodeType.getNodeName(aNode, m_eVersion) + ": " + ECSSNodeType.getNodeName(aChildNode, m_eVersion)); } return ret; }