View Javadoc

1   package com.atlassian.jira.plugin.issueoperation;
2   
3   import java.util.List;
4   import java.util.Map;
5   
6   import org.apache.log4j.Category;
7   import org.dom4j.Element;
8   
9   import com.atlassian.jira.issue.link.IssueLinker;
10  import com.atlassian.jira.plugin.MakeConditionHelper;
11  import com.atlassian.jira.plugin.PluginParserAssertions;
12  import com.atlassian.jira.security.JiraAuthenticationContext;
13  import com.atlassian.jira.util.JiraUtils;
14  import com.atlassian.plugin.Plugin;
15  import com.atlassian.plugin.PluginParseException;
16  
17  /**
18   * FQCN : com.atlassian.jira.plugin.issueoperation.LinkerIssueOperationModuleDescriptor
19   * 
20   * @author Kaamelot
21   * @since 3.10.1.30 Description : LinkerIssueOperationModuleDescriptor providing : -
22   */
23  public class LinkerIssueOperationModuleDescriptor extends IssueOperationModuleDescriptor {
24  
25  	public static final String ISSUE_LINKER = "issue-linker";
26  
27  	protected static Category log = Category.getInstance(LinkerIssueOperationModuleDescriptor.class);
28  
29  	protected MakeConditionHelper makeConditionHelper;
30  
31  	protected IssueLinker issueLinker;
32  	
33  	public LinkerIssueOperationModuleDescriptor(JiraAuthenticationContext _authenticationContext) {
34  		super(_authenticationContext);
35  		makeConditionHelper = MakeConditionHelper.getInstance();
36  	}
37  
38  	/**
39  	 * Initialize the Plugin's Element - The Condition is loaded. If not defined, a default one is created returning
40  	 * always True.
41  	 */
42  	public void init(Plugin plugin, Element element) throws PluginParseException {
43  		super.init(plugin, element);
44  		initLinker(plugin, element);
45  	}
46  
47  	protected void initLinker(Plugin plugin, Element element) throws PluginParseException {
48  		List issueLinkerElements = element.elements(ISSUE_LINKER);
49  		PluginParserAssertions.assertElementOccursOnce(issueLinkerElements, ISSUE_LINKER);
50  		issueLinker = makeIssueLinker((Element) issueLinkerElements.get(0));
51  	}
52  
53  	protected IssueLinker makeIssueLinker(Element _element) throws PluginParseException {
54  		IssueLinker issueLinker = loadIssueLinker(_element.attributeValue("class"));
55  		return issueLinker;
56  	}
57  
58  	public IssueLinker loadIssueLinker(String className) throws PluginParseException {
59  		try {
60  			return (IssueLinker) JiraUtils.loadComponent(className, this.getClass());
61  		} catch (Exception e) {
62  			throw new PluginParseException(e);
63  		}
64  	}
65  
66  	/**
67  	 * @return Condition defined for the current Plugin's Element
68  	 */
69  	public IssueLinker getIssueLinker() {
70  		return issueLinker;
71  	}
72  }