WikiEngine.java |
1 /** 2 * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a copy 5 * of this software and associated documentation files (the "Software"), to deal 6 * in the Software without restriction, including without limitation the rights 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 * copies of the Software, and to permit persons to whom the Software is 9 * furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 * SOFTWARE. 21 */ 22 23 package com.liferay.portlet.wiki.engines; 24 25 import com.liferay.portlet.wiki.PageContentException; 26 import com.liferay.portlet.wiki.model.WikiPage; 27 28 import java.util.Map; 29 30 import javax.portlet.PortletURL; 31 32 /** 33 * <a href="WikiEngine.java.html"><b><i>View Source</i></b></a> 34 * 35 * @author Jorge Ferrer 36 * 37 */ 38 public interface WikiEngine { 39 40 /** 41 * Convert the content of the given page to HTML using the portletURL to 42 * build links. 43 * 44 * @param page a wiki page 45 * @param portletURL a portlet URL 46 * @return HTML string 47 * @throws PageContentException when there is an error parsing the page 48 * content 49 */ 50 public String convert(WikiPage page, PortletURL portletURL) 51 throws PageContentException; 52 53 /** 54 * Get a map with the links included in the given page. The key of each 55 * map entry is the title of the linked page. The value is a Boolean object 56 * that indicates if the linked page exists or not. 57 * 58 * @param page WikiPage to examine 59 * @return a map of links 60 * @throws PageContentException 61 */ 62 public Map<String, Boolean> getOutgoingLinks(WikiPage page) 63 throws PageContentException; 64 65 /** 66 * Return whether the provided page links to the given title. 67 * 68 * @param page the source page 69 * @param targetTitle the title of the target page 70 * @return true if the source page has a link to the target 71 * @throws PageContentException 72 */ 73 public boolean isLinkedTo(WikiPage page, String targetTitle) 74 throws PageContentException; 75 76 /** 77 * Set the configuraton to support quick links to other wikis. The format 78 * of the configuration is specific to the wiki engine. 79 * 80 * @param interWikiConfiguration 81 */ 82 public void setInterWikiConfiguration(String interWikiConfiguration); 83 84 /** 85 * Set the main wiki configuraiton as a String. The format of the 86 * configuration is specific to the wiki engine. 87 * 88 * @param mainConfiguration 89 */ 90 public void setMainConfiguration(String mainConfiguration); 91 92 /** 93 * Validate the content of a wiki page for this engine. 94 * 95 * @param nodeId 96 * @param content 97 * @return true if the content is valid 98 */ 99 public boolean validate(long nodeId, String content); 100 101 }