Home | History | Annotate | Download | only in text

Lines Matching refs:pattern

37      * Factory method, builds and returns a MessageNode from a MessageFormat pattern string.
38 * @param patternString a MessageFormat pattern string
41 * or does not represent a MessageFormat pattern
50 * @param pattern a parsed MessageFormat pattern string
53 * or does not represent a MessageFormat pattern
56 public static MessageNode buildMessageNode(MessagePattern pattern) {
57 int limit = pattern.countParts() - 1;
60 } else if (pattern.getPartType(0) != MessagePattern.Part.Type.MSG_START) {
62 "The MessagePattern does not represent a MessageFormat pattern");
64 return buildMessageNode(pattern, 0, limit);
78 * A Node representing a parsed MessageFormat pattern string.
460 private static MessageNode buildMessageNode(MessagePattern pattern, int start, int limit) {
461 int prevPatternIndex = pattern.getPart(start).getLimit();
464 MessagePattern.Part part = pattern.getPart(i);
468 new TextNode(pattern.getPatternString().substring(prevPatternIndex,
476 int argLimit = pattern.getLimitPartIndex(i);
477 node.addContentsNode(buildArgNode(pattern, i, argLimit));
479 part = pattern.getPart(i);
489 private static ArgNode buildArgNode(MessagePattern pattern, int start, int limit) {
491 MessagePattern.Part part = pattern.getPart(start);
493 part = pattern.getPart(++start); // ARG_NAME or ARG_NUMBER
494 node.name = pattern.getSubstring(part);
502 node.typeName = pattern.getSubstring(pattern.getPart(start++));
505 node.style = pattern.getSubstring(pattern.getPart(start));
510 node.complexStyle = buildChoiceStyleNode(pattern, start, limit);
514 node.complexStyle = buildPluralStyleNode(pattern, start, limit, argType);
518 node.complexStyle = buildSelectStyleNode(pattern, start, limit);
522 node.complexStyle = buildPluralStyleNode(pattern, start, limit, argType);
531 private static ComplexArgStyleNode buildChoiceStyleNode(MessagePattern pattern,
536 MessagePattern.Part part = pattern.getPart(start);
537 double value = pattern.getNumericValue(part);
539 int msgLimit = pattern.getLimitPartIndex(start);
541 variant.selector = pattern.getSubstring(pattern.getPart(valueIndex + 1));
543 variant.msgNode = buildMessageNode(pattern, start, msgLimit);
550 private static ComplexArgStyleNode buildPluralStyleNode(MessagePattern pattern,
554 MessagePattern.Part offset = pattern.getPart(start);
557 node.offset = pattern.getNumericValue(offset);
561 MessagePattern.Part selector = pattern.getPart(start++);
563 MessagePattern.Part part = pattern.getPart(start);
565 value = pattern.getNumericValue(part);
568 int msgLimit = pattern.getLimitPartIndex(start);
570 variant.selector = pattern.getSubstring(selector);
572 variant.msgNode = buildMessageNode(pattern, start, msgLimit);
579 private static ComplexArgStyleNode buildSelectStyleNode(MessagePattern pattern,
583 MessagePattern.Part selector = pattern.getPart(start++);
584 int msgLimit = pattern.getLimitPartIndex(start);
586 variant.selector = pattern.getSubstring(selector);
587 variant.msgNode = buildMessageNode(pattern, start, msgLimit);