PageRenderTime 20ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/confluence/mathjax/src/main/java/com/keysight/mathjax/helpers/PluginHelper.java

https://bitbucket.org/AlienSteel/keysight-plugins-for-atlassian-products
Java | 203 lines | 185 code | 17 blank | 1 comment | 14 complexity | abb498e5190e027b275a45d54ce3163d MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.keysight.mathjax.helpers;
  2. import com.atlassian.sal.api.pluginsettings.PluginSettings;
  3. import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
  4. import com.keysight.mathjax.rest.RestAdminConfigService;
  5. import org.apache.commons.validator.routines.UrlValidator;
  6. import com.atlassian.sal.api.pluginsettings.PluginSettings;
  7. import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
  8. import com.atlassian.sal.api.transaction.TransactionCallback;
  9. import com.atlassian.sal.api.transaction.TransactionTemplate;
  10. import org.springframework.stereotype.Component;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.slf4j.Logger;
  14. import org.slf4j.LoggerFactory;
  15. // Helper functions for use throughout the plugin
  16. @Component
  17. public class PluginHelper {
  18. private final PluginSettingsFactory pluginSettingsFactory;
  19. private final TransactionTemplate transactionTemplate;
  20. private String m_url;
  21. private String m_inlineMathjaxStartIdentifier;
  22. private String m_inlineMathjaxEndIdentifier;
  23. private String m_blockMathjaxStartIdentifier;
  24. private String m_blockMathjaxEndIdentifier;
  25. private static String INLINE_MATHJAX_START_IDENTIFIER = "inlineMathjaxStartIdentifier";
  26. private static String INLINE_MATHJAX_END_IDENTIFIER = "inlineMathjaxEndIdentifier";
  27. private static String BLOCK_MATHJAX_START_IDENTIFIER = "blockMathjaxStartIdentifier";
  28. private static String BLOCK_MATHJAX_END_IDENTIFIER = "blockMathjaxEndIdentifier";
  29. private static final Logger log = LoggerFactory.getLogger(PluginHelper.class);
  30. @Autowired
  31. public PluginHelper(PluginSettingsFactory pluginSettingsFactory,
  32. TransactionTemplate transactionTemplate ){
  33. this.pluginSettingsFactory = pluginSettingsFactory;
  34. this.transactionTemplate = transactionTemplate;
  35. PluginSettings pluginSettings = this.pluginSettingsFactory.createGlobalSettings();
  36. UrlValidator urlValidator = new UrlValidator();
  37. String url;
  38. String inlineMathjaxStartIdentifier;
  39. String inlineMathjaxEndIdentifier;
  40. String blockMathjaxStartIdentifier;
  41. String blockMathjaxEndIdentifier;
  42. try {
  43. url = (String) pluginSettings.get(RestAdminConfigService.Config.class.getName() + ".url");
  44. if (urlValidator.isValid(url)) {
  45. this.setUrl( url );
  46. } else {
  47. this.setUrl( Constants.DEFAULT_URL );
  48. }
  49. } catch (Exception exception) {
  50. try {
  51. this.setUrl( Constants.DEFAULT_URL );
  52. } catch (Exception exception2) {
  53. log.warn( "Failed to save default url value to the plugin settings: " + exception2.getMessage() );
  54. }
  55. }
  56. try {
  57. inlineMathjaxStartIdentifier = (String) pluginSettings.get(RestAdminConfigService.Config.class.getName() + "." + INLINE_MATHJAX_START_IDENTIFIER);
  58. if ( StringUtils.isNotBlank(inlineMathjaxStartIdentifier)) {
  59. this.setInlineMathjaxStartIdentifier( inlineMathjaxStartIdentifier );
  60. } else {
  61. this.setInlineMathjaxStartIdentifier( Constants.DEFAULT_INLINE_MATHJAX_START_IDENTIFIER );
  62. }
  63. } catch (Exception exception) {
  64. try {
  65. this.setInlineMathjaxStartIdentifier( Constants.DEFAULT_INLINE_MATHJAX_START_IDENTIFIER );
  66. } catch (Exception exception2) {
  67. log.warn( "Failed to save default inline start identifier value to the plugin settings: " + exception2.getMessage() );
  68. }
  69. }
  70. try {
  71. inlineMathjaxEndIdentifier = (String) pluginSettings.get(RestAdminConfigService.Config.class.getName() + "." + INLINE_MATHJAX_END_IDENTIFIER);
  72. if ( StringUtils.isNotBlank(inlineMathjaxEndIdentifier)) {
  73. this.setInlineMathjaxEndIdentifier( inlineMathjaxEndIdentifier );
  74. } else {
  75. this.setInlineMathjaxEndIdentifier( Constants.DEFAULT_INLINE_MATHJAX_END_IDENTIFIER );
  76. }
  77. } catch (Exception exception) {
  78. try {
  79. this.setInlineMathjaxEndIdentifier( Constants.DEFAULT_INLINE_MATHJAX_END_IDENTIFIER );
  80. } catch (Exception exception2) {
  81. log.warn( "Failed to save default inline end identifier value to the plugin settings: " + exception2.getMessage() );
  82. }
  83. }
  84. try {
  85. blockMathjaxStartIdentifier = (String) pluginSettings.get(RestAdminConfigService.Config.class.getName() + "." + BLOCK_MATHJAX_START_IDENTIFIER);
  86. if ( StringUtils.isNotBlank(blockMathjaxStartIdentifier)) {
  87. this.setBlockMathjaxStartIdentifier( blockMathjaxStartIdentifier );
  88. } else {
  89. this.setBlockMathjaxStartIdentifier( Constants.DEFAULT_BLOCK_MATHJAX_START_IDENTIFIER );
  90. }
  91. } catch (Exception exception) {
  92. try {
  93. this.setBlockMathjaxStartIdentifier( Constants.DEFAULT_BLOCK_MATHJAX_START_IDENTIFIER );
  94. } catch (Exception exception2) {
  95. log.warn( "Failed to save default block start identifier value to the plugin settings: " + exception2.getMessage() );
  96. }
  97. }
  98. try {
  99. blockMathjaxEndIdentifier = (String) pluginSettings.get(RestAdminConfigService.Config.class.getName() + "." + BLOCK_MATHJAX_END_IDENTIFIER);
  100. if ( StringUtils.isNotBlank(blockMathjaxEndIdentifier)) {
  101. this.setBlockMathjaxEndIdentifier( blockMathjaxEndIdentifier );
  102. } else {
  103. this.setBlockMathjaxEndIdentifier( Constants.DEFAULT_BLOCK_MATHJAX_END_IDENTIFIER );
  104. }
  105. } catch (Exception exception) {
  106. try {
  107. this.setBlockMathjaxEndIdentifier( Constants.DEFAULT_BLOCK_MATHJAX_END_IDENTIFIER );
  108. } catch (Exception exception2) {
  109. log.warn( "Failed to save default block end identifier value to the plugin settings: " + exception2.getMessage() );
  110. }
  111. }
  112. }
  113. public String getUrl(){
  114. return this.m_url;
  115. }
  116. public void setUrl( final String url ){
  117. this.m_url = url;
  118. transactionTemplate.execute(new TransactionCallback() {
  119. public Object doInTransaction() {
  120. PluginSettings pluginSettings = pluginSettingsFactory.createGlobalSettings();
  121. pluginSettings.put(RestAdminConfigService.Config.class.getName() + ".url", url);
  122. return null;
  123. }
  124. });
  125. }
  126. public String getInlineMathjaxStartIdentifier(){
  127. return this.m_inlineMathjaxStartIdentifier;
  128. }
  129. public void setInlineMathjaxStartIdentifier( final String value ){
  130. if( StringUtils.isNotBlank( value )) {
  131. this.m_inlineMathjaxStartIdentifier = value;
  132. transactionTemplate.execute(new TransactionCallback() {
  133. public Object doInTransaction() {
  134. PluginSettings pluginSettings = pluginSettingsFactory.createGlobalSettings();
  135. pluginSettings.put(RestAdminConfigService.Config.class.getName() + "." + INLINE_MATHJAX_START_IDENTIFIER, value);
  136. return null;
  137. }
  138. });
  139. }
  140. }
  141. public String getInlineMathjaxEndIdentifier(){
  142. return this.m_inlineMathjaxEndIdentifier;
  143. }
  144. public void setInlineMathjaxEndIdentifier( final String value ){
  145. if( StringUtils.isNotBlank( value )) {
  146. this.m_inlineMathjaxEndIdentifier = value;
  147. transactionTemplate.execute(new TransactionCallback() {
  148. public Object doInTransaction() {
  149. PluginSettings pluginSettings = pluginSettingsFactory.createGlobalSettings();
  150. pluginSettings.put(RestAdminConfigService.Config.class.getName() + "." + INLINE_MATHJAX_END_IDENTIFIER, value);
  151. return null;
  152. }
  153. });
  154. }
  155. }
  156. public String getBlockMathjaxStartIdentifier(){
  157. return this.m_blockMathjaxStartIdentifier;
  158. }
  159. public void setBlockMathjaxStartIdentifier( final String value ){
  160. if( StringUtils.isNotBlank( value )) {
  161. this.m_blockMathjaxStartIdentifier = value;
  162. transactionTemplate.execute(new TransactionCallback() {
  163. public Object doInTransaction() {
  164. PluginSettings pluginSettings = pluginSettingsFactory.createGlobalSettings();
  165. pluginSettings.put(RestAdminConfigService.Config.class.getName() + "." + BLOCK_MATHJAX_START_IDENTIFIER, value);
  166. return null;
  167. }
  168. });
  169. }
  170. }
  171. public String getBlockMathjaxEndIdentifier(){
  172. return this.m_blockMathjaxEndIdentifier;
  173. }
  174. public void setBlockMathjaxEndIdentifier( final String value ){
  175. if( StringUtils.isNotBlank( value )) {
  176. this.m_blockMathjaxEndIdentifier = value;
  177. transactionTemplate.execute(new TransactionCallback() {
  178. public Object doInTransaction() {
  179. PluginSettings pluginSettings = pluginSettingsFactory.createGlobalSettings();
  180. pluginSettings.put(RestAdminConfigService.Config.class.getName() + "." + BLOCK_MATHJAX_END_IDENTIFIER, value);
  181. return null;
  182. }
  183. });
  184. }
  185. }
  186. }