WikiEngine.java |
1 /** 2 * Copyright (c) 2000-2009 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 * Set the configuraton to support quick links to other wikis. The format 67 * of the configuration is specific to the wiki engine. 68 * 69 * @param interWikiConfiguration 70 */ 71 public void setInterWikiConfiguration(String interWikiConfiguration); 72 73 /** 74 * Set the main wiki configuraiton as a String. The format of the 75 * configuration is specific to the wiki engine. 76 * 77 * @param mainConfiguration 78 */ 79 public void setMainConfiguration(String mainConfiguration); 80 81 /** 82 * Validate the content of a wiki page for this engine. 83 * 84 * @param nodeId 85 * @param content 86 * @return true if the content is valid 87 */ 88 public boolean validate(long nodeId, String content); 89 90 }