private boolean isExtentKeyword(Term<?> term) { if (term instanceof TermIdent) { switch (((TermIdent) term).getValue()) { case "closest-corner": case "closest-side": case "farthest-corner": case "farthest-side": return true; default: return false; } } else { return false; } }
/** * Checks indent value against color card. * If its value matches, new TermColor is returned which is * subject of replace of TermIndent afterwards * @param ident Identifier possibly holding color's name * @return <code>TermColor</code> if color matches, <code>null</code> elsewhere */ public static TermColor getColorByIdent(TermIdent ident) { return ColorCard.getTermColor(ident.getValue()); }
/** * Checks indent value against color card. * If its value matches, new TermColor is returned which is * subject of replace of TermIndent afterwards * @param ident Identifier possibly holding color's name * @return <code>TermColor</code> if color matches, <code>null</code> elsewhere */ public static TermColor getColorByIdent(TermIdent ident) { return ColorCard.getTermColor(ident.getValue()); }
/** * @param text The text to be transformed. * @param textTransform A text-transform value as a space separated list of keywords. * @return the transformed text, or the original text if no transformations were performed. */ protected static String textFromTextTransform(String text, TermList textTransform) { for (Term<?> t : textTransform) { String tt = ((TermIdent)t).getValue(); if (tt.equals("uppercase")) text = text.toUpperCase(); else if (tt.equals("lowercase")) text = text.toLowerCase(); else if (!LOUIS_TEXT_TRANSFORM.matcher(tt).matches()) logger.warn("text-transform: {} not supported", tt); } return text; }
/** * Checks indent value against color card. * If its value matches, new TermColor is returned which is * subject of replace of TermIndent afterwards * @param ident Identifier possibly holding color's name * @return <code>TermColor</code> if color matches, <code>null</code> elsewhere */ public static TermColor getColorByIdent(TermIdent ident) { return ColorCard.getTermColor(ident.getValue()); }
/** * Checks indent value against color card. * If its value matches, new TermColor is returned which is * subject of replace of TermIndent afterwards * @param ident Identifier possibly holding color's name * @return <code>TermColor</code> if color matches, <code>null</code> elsewhere */ public static TermColor getColorByIdent(TermIdent ident) { return ColorCard.getTermColor(ident.getValue()); }
@Override public TermList setValue(List<Term<?>> value) { super.setValue(value); List<Term<?>> args = getSeparatedValues(DEFAULT_ARG_SEP, true); if (args != null && args.size() == 1) { if (args.get(0) instanceof TermIdent) { name = ((TermIdent) args.get(0)).getValue(); setValid(true); } } return this; }
/** * Obtains the identifier specified by the given media query expression. * @param e The media query expression specifying an identifier. * @return The identifier name or {@code null} when the value cannot be converted to an identifier. */ protected String getExpressionIdentifier(MediaExpression e) { if (e.size() == 1) //the length requires exactly one value { Term<?> term = e.get(0); if (term instanceof TermIdent) return ((TermIdent) term).getValue().trim().toLowerCase(Locale.ENGLISH); else return null; } else return null; }
/** * Obtains the identifier specified by the given media query expression. * @param e The media query expression specifying an identifier. * @return The identifier name or {@code null} when the value cannot be converted to an identifier. */ protected String getExpressionIdentifier(MediaExpression e) { if (e.size() == 1) //the length requires exactly one value { Term<?> term = e.get(0); if (term instanceof TermIdent) return ((TermIdent) term).getValue().trim().toLowerCase(Locale.ENGLISH); else return null; } else return null; }
/** * Obtains the identifier specified by the given media query expression. * @param e The media query expression specifying an identifier. * @return The identifier name or {@code null} when the value cannot be converted to an identifier. */ protected String getExpressionIdentifier(MediaExpression e) { if (e.size() == 1) //the length requires exactly one value { Term<?> term = e.get(0); if (term instanceof TermIdent) return ((TermIdent) term).getValue().trim().toLowerCase(Locale.ENGLISH); else return null; } else return null; }
@Override public TermList setValue(List<Term<?>> value) { super.setValue(value); List<Term<?>> 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; }
@Override public TermRect createRect(TermFunction function) { if (function.getFunctionName().equalsIgnoreCase("rect")) { List<Term<?>> args = function.getValues(true); //try the rect(0 0 0 0) syntax if (args == null || args.size() != 4) args = function.getSeparatedValues(CSSFactory.getTermFactory().createOperator(','), true); //try the rect(0, 0, 0, 0) syntax if (args.size() == 4) { //check the argument count and types for (int i = 0; i < 4; i++) { Term<?> val = args.get(i); if (val instanceof TermIdent) { if (((TermIdent) val).getValue().equalsIgnoreCase("auto")) //replace 'auto' with null args.set(i, null); } else if (!(val instanceof TermLength)) { return null; } } return createRect((TermLength) args.get(0), (TermLength) args.get(1), (TermLength) args.get(2), (TermLength) args.get(3)); } else { return null; } } else { return null; } }
private boolean setNumberOfRepetitions(List<Term<?>> argTerms) { if (argTerms.size() == 1) { Term t = argTerms.get(0); if (t instanceof TermInteger) { int value = ((TermInteger) t).getIntValue(); if (value > 0) { _numberOfRepetitions = Unit.createWithNRepetitions(value); return true; } } else if (t instanceof TermIdent) { String value = ((TermIdent) t).getValue(); if (value.equalsIgnoreCase(AUTO_FIT)) { _numberOfRepetitions = Unit.createWithAutoFit(); return true; } else if (value.equalsIgnoreCase(AUTO_FILL)) { _numberOfRepetitions = Unit.createWithAutoFill(); return true; } } } return false; }
/** * This method is overriden to use repeaters */ @Override protected boolean checkInherit(int variant, Term<?> term, Map<String, CSSProperty> properties) { // check whether term equals inherit if (!(term instanceof TermIdent) || !CSSProperty.INHERIT_KEYWORD .equalsIgnoreCase(((TermIdent) term).getValue())) { return false; } if (variant == ALL_VARIANTS) { for (int i = 0; i < variants; i++) { Repeater r = repeaters.get(i); r.assignTerms(term, term, term, term); r.repeat(properties, null); } return true; } Repeater r = repeaters.get(variant); r.assignTerms(term, term, term, term); r.repeat(properties, null); return true; }
/** * This method is overriden to use repeaters */ @Override protected boolean checkInherit(int variant, Term<?> term, Map<String, CSSProperty> properties) { // check whether term equals inherit if (!(term instanceof TermIdent) || !CSSProperty.INHERIT_KEYWORD .equalsIgnoreCase(((TermIdent) term).getValue())) { return false; } if (variant == ALL_VARIANTS) { for (int i = 0; i < variants; i++) { Repeater r = repeaters.get(i); r.assignTerms(term, term, term, term); r.repeat(properties, null); } return true; } Repeater r = repeaters.get(variant); r.assignTerms(term, term, term, term); r.repeat(properties, null); return true; }
/** * This method is overriden to use repeaters */ @Override protected boolean checkInherit(int variant, Term<?> term, Map<String, CSSProperty> properties) { // check whether term equals inherit if (!(term instanceof TermIdent) || !CSSProperty.INHERIT_KEYWORD .equalsIgnoreCase(((TermIdent) term).getValue())) { return false; } if (variant == ALL_VARIANTS) { for (int i = 0; i < variants; i++) { Repeater r = repeaters.get(i); r.assignTerms(term, term, term, term); r.repeat(properties, null); } return true; } Repeater r = repeaters.get(variant); r.assignTerms(term, term, term, term); r.repeat(properties, null); return true; }
/** * This method is overriden to use repeaters */ @Override protected boolean checkInherit(int variant, Term<?> term, Map<String, CSSProperty> properties) { // check whether term equals inherit if (!(term instanceof TermIdent) || !CSSProperty.INHERIT_KEYWORD .equalsIgnoreCase(((TermIdent) term).getValue())) { return false; } if (variant == ALL_VARIANTS) { for (int i = 0; i < variants; i++) { Repeater r = repeaters.get(i); r.assignTerms(term, term, term, term); r.repeat(properties, null); } return true; } Repeater r = repeaters.get(variant); r.assignTerms(term, term, term, term); r.repeat(properties, null); return true; }
private void storeBackgroundPosition(Term<?>[] storage, Term<?> term) { if (term instanceof TermIdent) { String idval = ((TermIdent) term).getValue(); TermFactory tf = CSSFactory.getTermFactory(); if (idval.equalsIgnoreCase("left")) setPositionValue(storage, 0, tf.createPercent(0.0f)); else if (idval.equalsIgnoreCase("right")) setPositionValue(storage, 0, tf.createPercent(100.0f)); else if (idval.equalsIgnoreCase("top")) setPositionValue(storage, 1, tf.createPercent(0.0f)); else if (idval.equalsIgnoreCase("bottom")) setPositionValue(storage, 1, tf.createPercent(100.0f)); else if (idval.equalsIgnoreCase("center")) setPositionValue(storage, -1, tf.createPercent(50.0f)); } else setPositionValue(storage, -1, term); }
private static Map<String,RulePage> getPageRule(NodeData nodeData, Map<String,Map<String,RulePage>> pageRules) { BrailleCSSProperty.Page pageProperty; { if (nodeData != null) pageProperty = nodeData.<BrailleCSSProperty.Page>getProperty("page", false); else pageProperty = null; } String name; { if (pageProperty != null) { if (pageProperty == BrailleCSSProperty.Page.identifier) name = nodeData.<TermIdent>getValue(TermIdent.class, "page", false).getValue(); else name = pageProperty.toString(); } else name = null; } if (name != null) return getPageRule(name, pageRules); else return null; }
protected boolean prependMinus(Term<?> term) { boolean merged = false; if (term instanceof TermFloatValue) { // includes TermAngle, TermLength, etc. TermFloatValue floatT = (TermFloatValue) term; floatT.setValue(-1 * floatT.getValue()); merged = true; } else if (term instanceof TermIdent) { TermIdent ident = (TermIdent) term; ident.setValue("-" + ident.getValue()); merged = true; } else if (term instanceof TermFunction) { TermFunction func = (TermFunction) term; func.setFunctionName("-" + func.getFunctionName()); merged = true; } return merged; }