blob: 95fb7ebed08bc868a3313b3feedd62fee7e62c88 [file] [log] [blame]
/*
* 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>
*
* &lt;Description
* tag=&quot;Context&quot;
* standard=&quot;true&quot;
* default=&quot;true&quot;
* externalAllowed=&quot;true&quot;
* storeSeparate=&quot;true&quot;
* backup=&quot;true&quot;
* children=&quot;true&quot;
* tagClass=&quot;org.apache.catalina.core.StandardContext&quot;
* storeFactoryClass=&quot;org.apache.catalina.storeconfig.StandardContextSF&quot;
* storeAppenderClass=&quot;org.apache.catalina.storeconfig.StoreContextAppender&quot;&gt;
* &lt;TransientAttribute&gt;available&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;configFile&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;configured&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;displayName&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;distributable&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;domain&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;engineName&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;name&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;publicId&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;replaceWelcomeFiles&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;saveConfig&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;sessionTimeout&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;startupTime&lt;/TransientAttribute&gt;
* &lt;TransientAttribute&gt;tldScanTime&lt;/TransientAttribute&gt;
* &lt;/Description&gt;
*
*
* </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
* @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
* @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;
}
}