JournalCreationStrategy.java |
1 /** 2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved. 3 * 4 * This library is free software; you can redistribute it and/or modify it under 5 * the terms of the GNU Lesser General Public License as published by the Free 6 * Software Foundation; either version 2.1 of the License, or (at your option) 7 * any later version. 8 * 9 * This library is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 12 * details. 13 */ 14 15 package com.liferay.portlet.journal.lar; 16 17 import com.liferay.portal.lar.PortletDataContext; 18 import com.liferay.portlet.journal.model.JournalArticle; 19 20 /** 21 * <a href="JournalCreationStrategy.java.html"><b><i>View Source</i></b></a> 22 * 23 * <p> 24 * An interface defining how newly created content should be added to the 25 * Journal when imported from a LAR file. A class implementing this interface 26 * should be specified in <i>portal.properties</i> under the 27 * <b>journal.lar.creation.strategy</b> property. 28 * </p> 29 * 30 * @author Joel Kozikowski 31 */ 32 public interface JournalCreationStrategy { 33 34 /** 35 * Constant returned by getAuthorUserId() and/or getApprovalUserId() that 36 * indicates the default portlet data import user id strategy that should be 37 * used to determine the user id. 38 */ 39 public static final long USE_DEFAULT_USER_ID_STRATEGY = 0; 40 41 /** 42 * Constant returned by getTransformedContent() to indicate that the article 43 * text should remained unchanged. 44 */ 45 public static final String ARTICLE_CONTENT_UNCHANGED = null; 46 47 /** 48 * Returns the author's user id to assign to newly created content. If zero 49 * is returned, the default user id import strategy will determine the 50 * author id. 51 * 52 * @return the author's user id or USE_DEFAULT_USER_ID_STRATEGY to use the 53 * default user id strategy 54 */ 55 public long getAuthorUserId(PortletDataContext context, Object journalObj) 56 throws Exception; 57 58 /** 59 * Returns the approver's user id to assign to newly created content. If 60 * zero is returned, the default user id import strategy will determine the 61 * author id. 62 * 63 * @return the approver's user id or USE_DEFAULT_USER_ID_STRATEGY to use the 64 * default user id strategy 65 */ 66 public long getApprovalUserId(PortletDataContext context, Object journalObj) 67 throws Exception; 68 69 /** 70 * Gives the content creation strategy an opportunity to transform the 71 * content before the new article is saved to the database. Possible use 72 * cases include using Velocity to merge in community specific values into 73 * the text. Returns the new content to assign to the article. If null is 74 * returned, the article content will be added unchanged. 75 * 76 * @return the transformed content to save in the database or 77 * ARTICLE_CONTENT_UNCHANGED if the content should be added 78 * unchanged 79 */ 80 public String getTransformedContent( 81 PortletDataContext context, JournalArticle newArticle) 82 throws Exception; 83 84 /** 85 * Returns true if the default community permissions should be added when 86 * the specified journalObj is created. 87 * 88 * @return true if default community permissions should be added to the 89 * specified journalObj 90 */ 91 public boolean addCommunityPermissions( 92 PortletDataContext context, Object journalObj) 93 throws Exception; 94 95 /** 96 * Returns true if the default guest permissions should be added when the 97 * specified journalObj is created. 98 * 99 * @return true if default guest permissions should be added to the 100 * specified journalObj 101 */ 102 public boolean addGuestPermissions( 103 PortletDataContext context, Object journalObj) 104 throws Exception; 105 106 }