1 23 package org.infoglue.cms.applications.workflowtool.function; 24 25 import java.util.List ; 26 27 import org.infoglue.cms.controllers.kernel.impl.simple.LanguageController; 28 import org.infoglue.cms.entities.management.LanguageVO; 29 30 import com.opensymphony.workflow.WorkflowException; 31 32 35 public class LanguageProvider extends InfoglueFunction 36 { 37 40 public static final String LANGUAGE_PARAMETER = "language"; 41 42 45 private static final String LANGUAGE_PROPERTYSET_KEY = "languageId"; 46 47 50 private static final String LANGUAGE_CODE_ARGUMENT = "code"; 51 52 55 private static final String LANGUAGE_ID_IDENTIFIER = "languageId"; 56 57 58 59 62 protected void execute() throws WorkflowException 63 { 64 LanguageVO languageVO = null; 65 66 if(propertySetContains(LANGUAGE_PROPERTYSET_KEY)) 67 { 68 languageVO = getLanguageWithID(getPropertySetString(LANGUAGE_PROPERTYSET_KEY)); 69 } 70 if(languageVO == null && parameterExists(LANGUAGE_ID_IDENTIFIER)) 71 { 72 languageVO = getLanguageWithID(getParameter(LANGUAGE_ID_IDENTIFIER).toString()); 73 } 74 if(languageVO == null && argumentExists(LANGUAGE_CODE_ARGUMENT)) 75 { 76 languageVO = getLanguageWithCode(getArgument(LANGUAGE_CODE_ARGUMENT)); 77 } 78 79 if(languageVO == null) 80 { 81 languageVO = getAnyLanguage(); 82 } 83 84 populate(languageVO); 85 } 86 87 90 private void populate(final LanguageVO languageVO) throws WorkflowException 91 { 92 if(languageVO == null && propertySetContains(LANGUAGE_PROPERTYSET_KEY)) 93 { 94 removeFromPropertySet(LANGUAGE_PROPERTYSET_KEY); 95 } 96 if(languageVO != null) 97 { 98 setParameter(LANGUAGE_PARAMETER, languageVO); 99 setPropertySetString(LANGUAGE_PROPERTYSET_KEY, languageVO.getId().toString()); 100 } 101 } 102 103 106 public LanguageVO getAnyLanguage() throws WorkflowException 107 { 108 LanguageVO languageVO = null; 109 try 110 { 111 final List languages = LanguageController.getController().getLanguageVOList(getDatabase()); 112 if(!languages.isEmpty()) 113 { 114 languageVO = (LanguageVO) languages.get(0); 115 } 116 throwException("No languages found..."); 117 } 118 catch (Exception e) 119 { 120 throwException("Language.getAnyLanguage() : " + e); 121 } 122 return languageVO; 123 } 124 125 128 public LanguageVO getLanguageWithID(final String languageId) throws WorkflowException 129 { 130 LanguageVO languageVO = null; 131 try 132 { 133 languageVO = LanguageController.getController().getLanguageVOWithId(new Integer (languageId), getDatabase()); 134 } 135 catch (Exception e) 136 { 137 throw new WorkflowException("Language.getLanguageWithID() : " + e); 138 } 139 return languageVO; 140 } 141 142 145 public LanguageVO getLanguageWithCode(final String code) throws WorkflowException 146 { 147 LanguageVO languageVO = null; 148 try 149 { 150 languageVO = LanguageController.getController().getLanguageVOWithCode(code, getDatabase()); 151 } 152 catch (Exception e) 153 { 154 throwException("Language.getLanguageWithCode() : " + e); 155 } 156 return languageVO; 157 } 158 } | Popular Tags |