/** * Copyright (c) 2000-2017 Liferay, Inc. All rights reserved. * * 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 com.liferay.faces.util.config; import javax.faces.context.ExternalContext; import com.liferay.faces.util.config.ConfigParam; import com.liferay.faces.util.config.WebConfigParamUtil; import com.liferay.faces.util.helper.BooleanHelper; /** * @author Neil Griffin */ public enum WebConfigParam implements ConfigParam<ExternalContext> { /** Boolean indicating whether or not XML entities should be resolved */ ResolveXMLEntities("com.liferay.faces.util.resolveXMLEntities", "com.liferay.faces.bridge.resolveXMLEntities", false), /** * Absolute path to a directory (folder) in which the uploaded file data should be written to. Default value is the * value of the system property "java.io.tmpdir". */ UploadedFilesDir("com.liferay.faces.util.uploadedFilesDir", System.getProperty("java.io.tmpdir")), /** Maximum file size for an uploaded file. Default is 104,857,600 (~100MB), upper limit is 2,147,483,647 (~2GB) */ UploadedFileMaxSize("com.liferay.faces.util.uploadedFileMaxSize", 104857600); // Private Data Members private String alternateName; private boolean defaultBooleanValue; private String defaultStringValue; private int defaultIntegerValue; private long defaultLongValue; private String name; private WebConfigParam(String name, String defaultStringValue) { this.name = name; if (BooleanHelper.isTrueToken(defaultStringValue)) { this.defaultBooleanValue = true; this.defaultIntegerValue = 1; } else { this.defaultBooleanValue = false; this.defaultIntegerValue = 0; } this.defaultStringValue = defaultStringValue; } private WebConfigParam(String name, int defaultIntegerValue) { this.name = name; this.defaultBooleanValue = (defaultIntegerValue != 0); this.defaultIntegerValue = defaultIntegerValue; this.defaultLongValue = defaultIntegerValue; this.defaultStringValue = Integer.toString(defaultIntegerValue); } private WebConfigParam(String name, long defaultLongValue) { this.name = name; this.defaultBooleanValue = (defaultLongValue != 0); if (defaultLongValue < Integer.MIN_VALUE) { this.defaultIntegerValue = Integer.MIN_VALUE; } else if (defaultLongValue > Integer.MAX_VALUE) { this.defaultIntegerValue = Integer.MAX_VALUE; } else { this.defaultIntegerValue = (int) defaultLongValue; } this.defaultLongValue = defaultLongValue; this.defaultStringValue = Long.toString(defaultLongValue); } private WebConfigParam(String name, String alternateName, boolean defaultBooleanValue) { this.name = name; this.alternateName = alternateName; if (defaultBooleanValue) { this.defaultBooleanValue = true; this.defaultIntegerValue = 1; this.defaultLongValue = 1L; this.defaultStringValue = Boolean.TRUE.toString(); } else { this.defaultBooleanValue = false; this.defaultIntegerValue = 0; this.defaultLongValue = 0L; this.defaultStringValue = Boolean.FALSE.toString(); } } public String getAlternateName() { return alternateName; } @Override public boolean getBooleanValue(ExternalContext externalContext) { return WebConfigParamUtil.getBooleanValue(externalContext, name, alternateName, defaultBooleanValue); } @Override public String getConfiguredValue(ExternalContext externalContext) { return WebConfigParamUtil.getConfiguredValue(externalContext, name, alternateName); } public boolean getDefaultBooleanValue() { return defaultBooleanValue; } public int getDefaultIntegerValue() { return defaultIntegerValue; } @Override public long getDefaultLongValue() { return defaultLongValue; } public String getDefaultStringValue() { return defaultStringValue; } @Override public int getIntegerValue(ExternalContext externalContext) { return WebConfigParamUtil.getIntegerValue(externalContext, name, alternateName, defaultIntegerValue); } @Override public long getLongValue(ExternalContext externalContext) { return WebConfigParamUtil.getLongValue(externalContext, name, alternateName, defaultLongValue); } public String getName() { return name; } @Override public String getStringValue(ExternalContext externalContext) { return WebConfigParamUtil.getStringValue(externalContext, name, alternateName, defaultStringValue); } @Override public boolean isConfigured(ExternalContext externalContext) { return WebConfigParamUtil.isSpecified(externalContext, name, alternateName); } }