Java源码示例:org.commonmark.node.OrderedList
示例1
public IntegerAssert countOrderedList() {
final AtomicInteger count = new AtomicInteger();
actual.accept(new AbstractVisitor() {
@Override
public void visit(OrderedList orderedList) {
count.incrementAndGet();
super.visit(orderedList);
}
});
return new IntegerAssert(count.get());
}
示例2
private static boolean isBulletOrdered(@NonNull Node node) {
node = node.getParent();
while (node != null) {
if (node instanceof OrderedList) {
return true;
}
if (node instanceof BulletList) {
return false;
}
node = node.getParent();
}
return false;
}
示例3
public OrderedListHolder(ListHolder parent, OrderedList list) {
super(parent);
delimiter = list.getDelimiter();
counter = list.getStartNumber();
}
示例4
@Override
public void visit(OrderedList orderedList) {
visit((Node) orderedList);
}
示例5
private static void orderedList(@NonNull MarkwonVisitor.Builder builder) {
builder.on(OrderedList.class, new SimpleBlockNodeVisitor());
}
示例6
@Override
public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) {
// NB that both ordered and bullet lists are represented
// by ListItem (must inspect parent to detect the type)
builder.on(ListItem.class, (visitor, listItem) -> {
// mimic original behaviour (copy-pasta from CorePlugin)
final int length = visitor.length();
visitor.visitChildren(listItem);
final Node parent = listItem.getParent();
if (parent instanceof OrderedList) {
final int start = ((OrderedList) parent).getStartNumber();
CoreProps.LIST_ITEM_TYPE.set(visitor.renderProps(), CoreProps.ListItemType.ORDERED);
CoreProps.ORDERED_LIST_ITEM_NUMBER.set(visitor.renderProps(), start);
// after we have visited the children increment start number
final OrderedList orderedList = (OrderedList) parent;
orderedList.setStartNumber(orderedList.getStartNumber() + 1);
} else {
CoreProps.LIST_ITEM_TYPE.set(visitor.renderProps(), CoreProps.ListItemType.BULLET);
if (isBulletOrdered(parent)) {
// obtain current count value
final int count = currentBulletCountIn(parent);
BULLET_LETTER.set(visitor.renderProps(), createBulletLetter(count));
// update current count value
setCurrentBulletCountIn(parent, count + 1);
} else {
CoreProps.BULLET_LIST_ITEM_LEVEL.set(visitor.renderProps(), listLevel(listItem));
// clear letter info when regular bullet list is used
BULLET_LETTER.clear(visitor.renderProps());
}
}
visitor.setSpansForNodeOptional(listItem, length);
if (visitor.hasNext(listItem)) {
visitor.ensureNewLine();
}
});
}
示例7
public OrderedListHolder(ListHolder parent, OrderedList list) {
super(parent);
delimiter = list.getDelimiter();
counter = list.getStartNumber();
}