/**
* Copyright (c) 2009 Juwi MacMillan Group GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.juwimm.cms.util;
import static de.juwimm.cms.client.beans.Application.getBean;
import static de.juwimm.cms.common.Constants.rb;
import java.util.Hashtable;
import org.apache.log4j.Logger;
import org.tizzit.util.XercesHelper;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import de.juwimm.cms.client.beans.Beans;
/**
* <p>Title: Tizzit</p>
* <p>Description: Enterprise Content Management</p>
* <p>Copyright: Copyright (c) 2004</p>
* @author <a href="sascha.kulawik@juwimm.com">Sascha-Matthias Kulawik</a>
* @version $Id$
*/
public final class Parameters {
private static Logger log = Logger.getLogger(Parameters.class);
private static Parameter[] availableSiteParameter;
private static Hashtable<String, Object> actualSiteParameterValues = new Hashtable<String, Object>();
public static final String PARAM_SHOW_PREVIEW_FRAMESET = "showPreviewFrameset";
public static final String PARAM_PICTURE_POSITION_1 = "picturePosition1";
public static final String PARAM_PICTURE_POSITION_2 = "picturePosition2";
public static final String PARAM_PICTURE_POSITION_3 = "picturePosition3";
public static final String PARAM_PICTURE_POSITION_4 = "picturePosition4";
public static final String PARAM_PICTURE_POSITION_5 = "picturePosition5";
public static final String PARAM_PICTURE_POSITION_6 = "picturePosition6";
public static final String PARAM_EXTLINK_OPENWITHSTYLE = "extlinkOpenWithStyle";
public static final String PARAM_SHOWTYPE_0 = "showtype0";
public static final String PARAM_SHOWTYPE_1 = "showtype1";
public static final String PARAM_SHOWTYPE_2 = "showtype2";
public static final String PARAM_SHOWTYPE_3 = "showtype3";
public static final String PARAM_MAX_EDITION_STACK = "maxEditionStack";
public static final String PARAM_MAX_DISPLAY_LINK_NAME_LENGTH = "maxLinkNameLength";
public static final String PARAM_INCLUDE_XML_SEARCH_NAME = "includeXmlSearch";
public static final String PARAM_USER_CHANGE_PAGE_MODIFIED_DATE = "userChangePageModifiedDate";
public static final String PARAM_MAX_DOCUMENT_SIZE = "maxDocumentSize";
private Parameters() {
}
static {
// this are the only the currently supported parameterTypes for parameters.
SiteParameter.ParameterType[] onlyBoolean = new SiteParameter.ParameterType[] {new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_BOOLEAN, Boolean.FALSE)};
SiteParameter.ParameterType[] boolAndTextFalse = new SiteParameter.ParameterType[] {new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_BOOLEAN, Boolean.FALSE), new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_STRING, "")};
SiteParameter.ParameterType[] boolAndTextTrue = new SiteParameter.ParameterType[] {new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_BOOLEAN, Boolean.TRUE), new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_STRING, "")};
/*SiteParameter.ParameterType[] onlyText = new SiteParameter.ParameterType[] {
new SiteParameter.ParameterType(Parameter.PARAMETER_TYPE_STRING, "")
};*/
//These are the Parameters
availableSiteParameter = new Parameter[17];
availableSiteParameter[0] = new SiteParameter(PARAM_SHOW_PREVIEW_FRAMESET, rb.getString("PARAM_SHOW_PREVIEW_FRAMESET"), onlyBoolean);
availableSiteParameter[1] = new SiteParameter(PARAM_PICTURE_POSITION_1, rb.getString("PARAM_PICTURE_POSITION_1"), boolAndTextTrue);
availableSiteParameter[2] = new SiteParameter(PARAM_PICTURE_POSITION_2, rb.getString("PARAM_PICTURE_POSITION_2"), boolAndTextTrue);
availableSiteParameter[3] = new SiteParameter(PARAM_PICTURE_POSITION_3, rb.getString("PARAM_PICTURE_POSITION_3"), boolAndTextTrue);
availableSiteParameter[4] = new SiteParameter(PARAM_PICTURE_POSITION_4, rb.getString("PARAM_PICTURE_POSITION_4"), boolAndTextTrue);
availableSiteParameter[5] = new SiteParameter(PARAM_PICTURE_POSITION_5, rb.getString("PARAM_PICTURE_POSITION_5"), boolAndTextTrue);
availableSiteParameter[6] = new SiteParameter(PARAM_PICTURE_POSITION_6, rb.getString("PARAM_PICTURE_POSITION_6"), boolAndTextTrue);
availableSiteParameter[7] = new SiteParameter(PARAM_EXTLINK_OPENWITHSTYLE, rb.getString("PARAM_EXTLINK_OPENWITHSTYLE"), onlyBoolean);
availableSiteParameter[8] = new SiteParameter(PARAM_SHOWTYPE_0, "ShowType 0", boolAndTextTrue);
availableSiteParameter[9] = new SiteParameter(PARAM_SHOWTYPE_1, "ShowType 1", boolAndTextTrue);
availableSiteParameter[10] = new SiteParameter(PARAM_SHOWTYPE_2, "ShowType 2", boolAndTextTrue);
availableSiteParameter[11] = new SiteParameter(PARAM_SHOWTYPE_3, "ShowType 3", boolAndTextTrue);
availableSiteParameter[12] = new SiteParameter(PARAM_MAX_EDITION_STACK, "max. Editions", boolAndTextFalse);
availableSiteParameter[13] = new SiteParameter(PARAM_MAX_DISPLAY_LINK_NAME_LENGTH, rb.getString("PARAM_MAX_DISPLAY_LINK_NAME_LENGTH"), boolAndTextFalse);
availableSiteParameter[14] = new SiteParameter(PARAM_INCLUDE_XML_SEARCH_NAME, rb.getString("PARAM_INCLUDE_XML_SEARCH_NAME"), boolAndTextFalse);
availableSiteParameter[15] = new SiteParameter(PARAM_USER_CHANGE_PAGE_MODIFIED_DATE, rb.getString("PARAM_USER_CHANGE_PAGE_MODIFIED_DATE"), onlyBoolean);
availableSiteParameter[16] = new SiteParameter(PARAM_MAX_DOCUMENT_SIZE, rb.getString("PARAM_MAX_DOCUMENT_SIZE"), boolAndTextTrue);
}
public static Parameter[] getAvailableSiteParameter() {
return availableSiteParameter;
}
public static void clear() {
actualSiteParameterValues = new Hashtable<String, Object>();
}
public static void loadRolesetForActiveSite() { //should load the settings for the active site.
log.info("Loading Roleset for active Domain");
Parameters.clear();
ConfigReader cfg = new ConfigReader(((Communication) getBean(Beans.COMMUNICATION)).getSiteConfigXML(), ConfigReader.CONF_NODE_DEFAULT);
NodeList nl = cfg.getConfigSubelements("parameters");
if (nl != null) {
for (int i = 0; i < nl.getLength(); i++) {
Node nde = nl.item(i);
actualSiteParameterValues.put(nde.getNodeName(), XercesHelper.getNodeValue(nde));
}
}
}
public static void setParameter(String id, int paramType, Object value) {
actualSiteParameterValues.put(id + "_" + paramType, value);
}
public static Object getParameter(String id, int paramType) {
if (actualSiteParameterValues.containsKey(id + "_" + paramType)) { return actualSiteParameterValues.get(id + "_" + paramType); }
// return default value
for (int i = 0; i < availableSiteParameter.length; i++) {
if (availableSiteParameter[i].getId().equalsIgnoreCase(id)) { return availableSiteParameter[i].getDefaultValue(paramType); }
}
return null;
}
public static boolean getBooleanParameter(String id) {
return Boolean.valueOf(getParameter(id, Parameter.PARAMETER_TYPE_BOOLEAN).toString()).booleanValue();
}
public static String getStringParameter(String id) {
return ((String) getParameter(id, Parameter.PARAMETER_TYPE_STRING));
}
}