/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.wiki.engine.creole.internal.parser.visitor; import com.liferay.wiki.engine.creole.internal.parser.ast.ASTNode; import com.liferay.wiki.engine.creole.internal.parser.ast.BoldTextNode; import com.liferay.wiki.engine.creole.internal.parser.ast.CollectionNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ForcedEndOfLineNode; import com.liferay.wiki.engine.creole.internal.parser.ast.FormattedTextNode; import com.liferay.wiki.engine.creole.internal.parser.ast.HeadingNode; import com.liferay.wiki.engine.creole.internal.parser.ast.HorizontalNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ImageNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ItalicTextNode; import com.liferay.wiki.engine.creole.internal.parser.ast.LineNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ListNode; import com.liferay.wiki.engine.creole.internal.parser.ast.NoWikiInlineNode; import com.liferay.wiki.engine.creole.internal.parser.ast.NoWikiSectionNode; import com.liferay.wiki.engine.creole.internal.parser.ast.OrderedListItemNode; import com.liferay.wiki.engine.creole.internal.parser.ast.OrderedListNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ParagraphNode; import com.liferay.wiki.engine.creole.internal.parser.ast.ScapedNode; import com.liferay.wiki.engine.creole.internal.parser.ast.UnformattedTextNode; import com.liferay.wiki.engine.creole.internal.parser.ast.UnorderedListItemNode; import com.liferay.wiki.engine.creole.internal.parser.ast.UnorderedListNode; import com.liferay.wiki.engine.creole.internal.parser.ast.WikiPageNode; import com.liferay.wiki.engine.creole.internal.parser.ast.extension.TableOfContentsNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.LinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.C2InterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.DokuWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.FlickrInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.GoogleInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.JSPWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.MeatballInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.MediaWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.MoinMoinInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.OddmuseInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.OhanaInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.PmWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.PukiWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.PurpleWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.RadeoxInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.SnipSnapInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.TWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.TiddlyWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.UsemodInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.WikipediaInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.link.interwiki.XWikiInterwikiLinkNode; import com.liferay.wiki.engine.creole.internal.parser.ast.table.TableDataNode; import com.liferay.wiki.engine.creole.internal.parser.ast.table.TableHeaderNode; import com.liferay.wiki.engine.creole.internal.parser.ast.table.TableNode; import java.util.List; /** * @author Miguel Pastor */ public abstract class BaseASTVisitor implements ASTVisitor { @Override public void visit(BoldTextNode boldTextNode) { if (boldTextNode.getChildASTNodesCount() > 0) { traverse(boldTextNode.getChildASTNodes()); } } @Override public void visit(C2InterwikiLinkNode c2InterwikiLinkNode) { } @Override public void visit(CollectionNode collectionNode) { for (ASTNode curNode : collectionNode.getASTNodes()) { curNode.accept(this); } } @Override public void visit(DokuWikiInterwikiLinkNode dokuWikiInterwikiLinkNode) { } @Override public void visit(FlickrInterwikiLinkNode flickrInterwikiLinkNode) { } @Override public void visit(ForcedEndOfLineNode forcedEndOfLineNode) { } @Override public void visit(FormattedTextNode formattedTextNode) { if (formattedTextNode.getChildASTNodesCount() > 0) { traverse(formattedTextNode.getChildASTNodes()); } } @Override public void visit(GoogleInterwikiLinkNode googleInterwikiLinkNode) { } @Override public void visit(HeadingNode headingNode) { traverse(headingNode.getChildASTNodes()); } @Override public void visit(HorizontalNode horizontalNode) { } @Override public void visit(ImageNode imageNode) { if (imageNode.hasAltCollectionNode()) { traverse(imageNode.getAltNode().getASTNodes()); } } @Override public void visit(ItalicTextNode italicTextNode) { if (italicTextNode.getChildASTNodesCount() > 0) { traverse(italicTextNode.getChildASTNodes()); } } @Override public void visit(JSPWikiInterwikiLinkNode jspWikiInterwikiLinkNode) { } @Override public void visit(LineNode lineNode) { traverse(lineNode.getChildASTNodes()); } @Override public void visit(LinkNode linkNode) { if (linkNode.hasAltCollectionNode()) { traverse(linkNode.getAltCollectionNode().getASTNodes()); } } @Override public void visit(ListNode listNode) { traverse(listNode.getChildASTNodes()); } @Override public void visit(MeatballInterwikiLinkNode meatballInterwikiLinkNode) { } @Override public void visit(MediaWikiInterwikiLinkNode mediaWikiInterwikiLinkNode) { } @Override public void visit(MoinMoinInterwikiLinkNode moinMoinInterwikiLinkNode) { } @Override public void visit(NoWikiInlineNode noWikiInlineNode) { } @Override public void visit(NoWikiSectionNode noWikiSectionNode) { } @Override public void visit(OddmuseInterwikiLinkNode oddmuseInterwikiLinkNode) { } @Override public void visit(OhanaInterwikiLinkNode ohanaInterwikiLinkNode) { } @Override public void visit(OrderedListItemNode orderedListItemNode) { traverse(orderedListItemNode.getChildASTNodes()); } @Override public void visit(OrderedListNode orderedListNode) { traverse(orderedListNode.getChildASTNodes()); } @Override public void visit(ParagraphNode paragraphNode) { traverse(paragraphNode.getChildASTNodes()); } @Override public void visit(PmWikiInterwikiLinkNode pmWikiInterwikiLinkNode) { } @Override public void visit(PukiWikiInterwikiLinkNode pukiWikiInterwikiLinkNode) { } @Override public void visit(PurpleWikiInterwikiLinkNode purpleWikiInterwikiLinkNode) { } @Override public void visit(RadeoxInterwikiLinkNode radeoxInterwikiLinkNode) { } @Override public void visit(ScapedNode scapedNode) { } @Override public void visit(SnipSnapInterwikiLinkNode snipSnapInterwikiLinkNode) { } @Override public void visit(TableDataNode tableDataNode) { traverse(tableDataNode.getChildASTNodes()); } @Override public void visit(TableHeaderNode tableHeaderNode) { traverse(tableHeaderNode.getChildASTNodes()); } @Override public void visit(TableNode tableNode) { traverse(tableNode.getChildASTNodes()); } @Override public void visit(TableOfContentsNode tableOfContentsNode) { } @Override public void visit(TiddlyWikiInterwikiLinkNode tiddlyWikiInterwikiLinkNode) { } @Override public void visit(TWikiInterwikiLinkNode tWikiInterwikiLinkNode) { } @Override public void visit(UnformattedTextNode unformattedTextNode) { if (unformattedTextNode.getChildASTNodesCount() > 0) { traverse(unformattedTextNode.getChildASTNodes()); } } @Override public void visit(UnorderedListItemNode unorderedListItemNode) { traverse(unorderedListItemNode.getChildASTNodes()); } @Override public void visit(UnorderedListNode unorderedListNode) { traverse(unorderedListNode.getChildASTNodes()); } @Override public void visit(UsemodInterwikiLinkNode usemodInterwikiLinkNode) { } @Override public void visit(WikiPageNode wikiPageNode) { traverse(wikiPageNode.getChildASTNodes()); } @Override public void visit(WikipediaInterwikiLinkNode wikipediaInterwikiLinkNode) { } @Override public void visit(XWikiInterwikiLinkNode xWikiInterwikiLinkNode) { } protected void traverse(List<ASTNode> astNodes) { if (astNodes != null) { for (ASTNode node : astNodes) { node.accept(this); } } } }