/*
* 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;
}
}