/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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 org.apache.catalina.storeconfig; import java.util.ArrayList; import java.util.List; /** * Bean of a StoreDescription * * <pre> * * <Description * tag="Context" * standard="true" * default="true" * externalAllowed="true" * storeSeparate="true" * backup="true" * children="true" * tagClass="org.apache.catalina.core.StandardContext" * storeFactoryClass="org.apache.catalina.storeconfig.StandardContextSF" * storeAppenderClass="org.apache.catalina.storeconfig.StoreContextAppender"> * <TransientAttribute>available</TransientAttribute> * <TransientAttribute>configFile</TransientAttribute> * <TransientAttribute>configured</TransientAttribute> * <TransientAttribute>displayName</TransientAttribute> * <TransientAttribute>distributable</TransientAttribute> * <TransientAttribute>domain</TransientAttribute> * <TransientAttribute>engineName</TransientAttribute> * <TransientAttribute>name</TransientAttribute> * <TransientAttribute>publicId</TransientAttribute> * <TransientAttribute>replaceWelcomeFiles</TransientAttribute> * <TransientAttribute>saveConfig</TransientAttribute> * <TransientAttribute>sessionTimeout</TransientAttribute> * <TransientAttribute>startupTime</TransientAttribute> * <TransientAttribute>tldScanTime</TransientAttribute> * </Description> * * * </pre> */ public class StoreDescription { private String id; private String tag; private String tagClass; private boolean standard = false; private boolean backup = false; private boolean externalAllowed = false; private boolean externalOnly = false; private boolean myDefault = false; private boolean attributes = true; private String storeFactoryClass; private IStoreFactory storeFactory; private String storeWriterClass; private boolean children = false; private List<String> transientAttributes; private List<String> transientChildren; private boolean storeSeparate = false; /** * @return Returns the external. */ public boolean isExternalAllowed() { return externalAllowed; } /** * @param external * The external to set. */ public void setExternalAllowed(boolean external) { this.externalAllowed = external; } public boolean isExternalOnly() { return externalOnly; } public void setExternalOnly(boolean external) { this.externalOnly = external; } /** * @return Returns the standard. */ public boolean isStandard() { return standard; } /** * @param standard * The standard to set. */ public void setStandard(boolean standard) { this.standard = standard; } /** * @return Returns the backup. */ public boolean isBackup() { return backup; } /** * @param backup * The backup to set. */ public void setBackup(boolean backup) { this.backup = backup; } /** * @return Returns the myDefault. */ public boolean isDefault() { return myDefault; } /** * @param aDefault * The myDefault to set. */ public void setDefault(boolean aDefault) { this.myDefault = aDefault; } /** * @return Returns the storeFactory. */ public String getStoreFactoryClass() { return storeFactoryClass; } /** * @param storeFactoryClass * The storeFactory to set. */ public void setStoreFactoryClass(String storeFactoryClass) { this.storeFactoryClass = storeFactoryClass; } /** * @return Returns the storeFactory. */ public IStoreFactory getStoreFactory() { return storeFactory; } /** * @param storeFactory * The storeFactory to set. */ public void setStoreFactory(IStoreFactory storeFactory) { this.storeFactory = storeFactory; } /** * @return Returns the storeWriterClass. */ public String getStoreWriterClass() { return storeWriterClass; } /** * @param storeWriterClass * The storeWriterClass to set. */ public void setStoreWriterClass(String storeWriterClass) { this.storeWriterClass = storeWriterClass; } /** * @return Returns the tagClass. */ public String getTag() { return tag; } /** * @param tag * The tag to set. */ public void setTag(String tag) { this.tag = tag; } /** * @return Returns the tagClass. */ public String getTagClass() { return tagClass; } /** * @param tagClass * The tagClass to set. */ public void setTagClass(String tagClass) { this.tagClass = tagClass; } /** * @return Returns the transientAttributes. */ public List<String> getTransientAttributes() { return transientAttributes; } /** * @param transientAttributes * The transientAttributes to set. */ public void setTransientAttributes(List<String> transientAttributes) { this.transientAttributes = transientAttributes; } public void addTransientAttribute(String attribute) { if (transientAttributes == null) transientAttributes = new ArrayList<>(); transientAttributes.add(attribute); } public void removeTransientAttribute(String attribute) { if (transientAttributes != null) transientAttributes.remove(attribute); } /** * @return Returns the transientChildren. */ public List<String> getTransientChildren() { return transientChildren; } /** * @param transientChildren * The transientChildren to set. */ public void setTransientChildren(List<String> transientChildren) { this.transientChildren = transientChildren; } public void addTransientChild(String classname) { if (transientChildren == null) transientChildren = new ArrayList<>(); transientChildren.add(classname); } public void removeTransientChild(String classname) { if (transientChildren != null) transientChildren.remove(classname); } /** * Is child transient, please don't save this. * * @param classname The class name to check * @return is classname attribute? */ public boolean isTransientChild(String classname) { if (transientChildren != null) return transientChildren.contains(classname); return false; } /** * Is attribute transient, please don't save this. * * @param attribute The attribute name to check * @return is transient attribute? */ public boolean isTransientAttribute(String attribute) { if (transientAttributes != null) return transientAttributes.contains(attribute); return false; } /** * Return the real id or TagClass * * @return Returns the id. */ public String getId() { if (id != null) return id; else return getTagClass(); } /** * @param id * The id to set. */ public void setId(String id) { this.id = id; } /** * @return Returns the attributes. */ public boolean isAttributes() { return attributes; } /** * @param attributes * The attributes to set. */ public void setAttributes(boolean attributes) { this.attributes = attributes; } /** * @return True if it's a separate store */ public boolean isStoreSeparate() { return storeSeparate; } public void setStoreSeparate(boolean storeSeparate) { this.storeSeparate = storeSeparate; } /** * @return Returns the children. */ public boolean isChildren() { return children; } /** * @param children * The children to set. */ public void setChildren(boolean children) { this.children = children; } }