public void analyzeAndAdd(String line) { if (line == null) { throw new IllegalArgumentException(); } line = CharHidder.hide(line); if (style.getType() == StripeStyleType.HEADING) { atoms.add(AtomText.createHeading(line, fontConfiguration, style.getOrder())); } else if (style.getType() == StripeStyleType.HORIZONTAL_LINE) { atoms.add(CreoleHorizontalLine.create(fontConfiguration, line, style.getStyle(), skinParam)); } else { modifyStripe(line); } }
public CreoleStripeSimpleParser( String line, CreoleContext creoleContext, FontConfiguration fontConfiguration, ISkinSimple skinParam, CreoleMode modeSimpleLine) { this.fontConfiguration = fontConfiguration; this.modeSimpleLine = modeSimpleLine; this.skinParam = skinParam; if (skinParam == null) { throw new IllegalArgumentException(); } final Pattern p4 = MyPattern.cmpile("^--([^-]*)--$"); final Matcher m4 = p4.matcher(line); if (m4.find()) { this.line = m4.group(1); this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '-'); return; } final Pattern p5 = MyPattern.cmpile("^==([^=]*)==$"); final Matcher m5 = p5.matcher(line); if (m5.find()) { this.line = m5.group(1); this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '='); return; } final Pattern p5b = MyPattern.cmpile("^===*==$"); final Matcher m5b = p5b.matcher(line); if (m5b.find()) { this.line = ""; this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '='); return; } // if (modeSimpleLine == CreoleMode.FULL) { // final Pattern p6 = MyPattern.cmpile("^__([^_]*)__$"); // final Matcher m6 = p6.matcher(line); // if (m6.find()) { // this.line = m6.group(1); // this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '_'); // return; // } // } final Pattern p7 = MyPattern.cmpile("^\\.\\.([^\\.]*)\\.\\.$"); final Matcher m7 = p7.matcher(line); if (m7.find()) { this.line = m7.group(1); this.style = new StripeStyle(StripeStyleType.HORIZONTAL_LINE, 0, '.'); return; } if (modeSimpleLine == CreoleMode.FULL) { final Pattern p1 = MyPattern.cmpile("^(\\*+)([^*]+(?:[^*]|\\*\\*[^*]+\\*\\*)*)$"); final Matcher m1 = p1.matcher(line); if (m1.find()) { this.line = StringUtils.trin(m1.group(2)); final int order = m1.group(1).length() - 1; this.style = new StripeStyle(StripeStyleType.LIST_WITHOUT_NUMBER, order, '\0'); return; } } if (modeSimpleLine == CreoleMode.FULL) { final Pattern p2 = MyPattern.cmpile("^(#+)(.+)$"); final Matcher m2 = p2.matcher(CharHidder.hide(line)); if (m2.find()) { this.line = StringUtils.trin(CharHidder.unhide(m2.group(2))); final int order = CharHidder.unhide(m2.group(1)).length() - 1; this.style = new StripeStyle(StripeStyleType.LIST_WITH_NUMBER, order, '\0'); return; } } final Pattern p3 = MyPattern.cmpile("^(=+)(.+)$"); final Matcher m3 = p3.matcher(line); if (m3.find()) { this.line = StringUtils.trin(m3.group(2)); final int order = m3.group(1).length() - 1; this.style = new StripeStyle(StripeStyleType.HEADING, order, '\0'); return; } this.line = line; this.style = new StripeStyle(StripeStyleType.NORMAL, 0, '\0'); }