📄 cmsvfsconfiguration.java
字号:
+ "/"
+ N_PROPERTY
+ "/"
+ N_VALUE, 0);
digester.addCallParam("*/"
+ N_RESOURCETYPES
+ "/"
+ N_TYPE
+ "/"
+ N_PROPERTIES
+ "/"
+ N_PROPERTY
+ "/"
+ N_VALUE, 1, A_TYPE);
digester.addSetNext(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_PROPERTIES + "/" + N_PROPERTY,
"addDefaultProperty");
// extension mapping rules
digester.addCallMethod(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_MAPPINGS + "/" + N_MAPPING,
I_CmsResourceType.ADD_MAPPING_METHOD,
1);
digester.addCallParam("*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_MAPPINGS + "/" + N_MAPPING, 0, A_SUFFIX);
// copy resource rules
digester.addCallMethod(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_COPY_RESOURCES + "/" + N_COPY_RESOURCE,
"addCopyResource",
3);
digester.addCallParam(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_COPY_RESOURCES + "/" + N_COPY_RESOURCE,
0,
A_SOURCE);
digester.addCallParam(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_COPY_RESOURCES + "/" + N_COPY_RESOURCE,
1,
A_TARGET);
digester.addCallParam(
"*/" + N_RESOURCETYPES + "/" + N_TYPE + "/" + N_COPY_RESOURCES + "/" + N_COPY_RESOURCE,
2,
A_TYPE);
}
/**
* Creates the xml output for resourcetype nodes.<p>
*
* @param startNode the startnode to add all rescource types to
* @param resourceTypes the list of resource types
* @param module flag, signaling to add them module resource types or not
*/
public static void generateResourceTypeXml(Element startNode, List resourceTypes, boolean module) {
for (int i = 0; i < resourceTypes.size(); i++) {
I_CmsResourceType resType = (I_CmsResourceType)resourceTypes.get(i);
// only add this resource type to the xml output, if it is no additional type defined
// in a module
if (resType.isAdditionalModuleResourceType() == module) {
Element resourceType = startNode.addElement(N_TYPE).addAttribute(A_CLASS, resType.getClassName());
// add type id and type name
resourceType.addAttribute(A_NAME, resType.getTypeName());
resourceType.addAttribute(A_ID, String.valueOf(resType.getTypeId()));
// add resource mappings
List mappings = resType.getConfiguredMappings();
if ((mappings != null) && (mappings.size() > 0)) {
Element mappingsNode = resourceType.addElement(N_MAPPINGS);
for (int j = 0; j < mappings.size(); j++) {
Element mapping = mappingsNode.addElement(N_MAPPING);
mapping.addAttribute(A_SUFFIX, (String)mappings.get(j));
}
}
// add default properties
List properties = resType.getConfiguredDefaultProperties();
if ((properties != null) && (properties.size() > 0)) {
Element propertiesNode = resourceType.addElement(N_PROPERTIES);
Iterator p = properties.iterator();
while (p.hasNext()) {
CmsProperty property = (CmsProperty)p.next();
Element propertyNode = propertiesNode.addElement(N_PROPERTY);
propertyNode.addElement(N_NAME).addText(property.getName());
if (property.getStructureValue() != null) {
propertyNode.addElement(N_VALUE).addCDATA(property.getStructureValue());
}
if (property.getResourceValue() != null) {
propertyNode.addElement(N_VALUE).addAttribute(A_TYPE, CmsProperty.TYPE_SHARED).addCDATA(
property.getResourceValue());
}
}
}
// add copy resources
List copyRes = resType.getConfiguredCopyResources();
if ((copyRes != null) && (copyRes.size() > 0)) {
Element copyResNode = resourceType.addElement(N_COPY_RESOURCES);
Iterator p = copyRes.iterator();
while (p.hasNext()) {
CmsConfigurationCopyResource cRes = (CmsConfigurationCopyResource)p.next();
Element cNode = copyResNode.addElement(N_COPY_RESOURCE);
cNode.addAttribute(A_SOURCE, cRes.getSource());
if (!cRes.isTargetWasNull()) {
cNode.addAttribute(A_TARGET, cRes.getTarget());
}
if (!cRes.isTypeWasNull()) {
cNode.addAttribute(A_TYPE, cRes.getTypeString());
}
}
}
// add optional parameters
Map prop = resType.getConfiguration();
if (prop != null) {
List sortedRuntimeProperties = new ArrayList(prop.keySet());
Collections.sort(sortedRuntimeProperties);
Iterator it = sortedRuntimeProperties.iterator();
while (it.hasNext()) {
String key = (String)it.next();
// create <param name="">value</param> subnodes
Object valueObject = prop.get(key);
String value = new String();
if (valueObject instanceof String) {
value = (String)valueObject;
} else if (valueObject instanceof Integer) {
value = ((Integer)valueObject).toString();
}
resourceType.addElement(N_PARAM).addAttribute(A_NAME, key).addText(value);
}
}
}
}
}
/**
* Adds a directory default file.<p>
*
* @param defaultFile the directory default file to add
*/
public void addDefaultFile(String defaultFile) {
m_defaultFiles.add(defaultFile);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_VFS_DEFAULT_FILE_2,
new Integer(m_defaultFiles.size()),
defaultFile));
}
}
/**
* Adds one file translation rule.<p>
*
* @param translation the file translation rule to add
*/
public void addFileTranslation(String translation) {
m_fileTranslations.add(translation);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_ADD_FILE_TRANSLATION_1, translation));
}
}
/**
* Adds one folder translation rule.<p>
*
* @param translation the folder translation rule to add
*/
public void addFolderTranslation(String translation) {
m_folderTranslations.add(translation);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_ADD_FOLDER_TRANSLATION_1, translation));
}
}
/**
* @see org.opencms.configuration.I_CmsXmlConfiguration#addXmlDigesterRules(org.apache.commons.digester.Digester)
*/
public void addXmlDigesterRules(Digester digester) {
// add finish rule
digester.addCallMethod("*/" + N_VFS, "initializeFinished");
// creation of the resource manager
digester.addObjectCreate("*/" + N_VFS + "/" + N_RESOURCES, CmsResourceManager.class);
digester.addCallMethod(
"*/" + N_VFS + "/" + N_RESOURCES,
I_CmsConfigurationParameterHandler.INIT_CONFIGURATION_METHOD);
digester.addSetNext("*/" + N_VFS + "/" + N_RESOURCES, "setResourceManager");
// add rules for resource loaders
digester.addObjectCreate(
"*/" + N_VFS + "/" + N_RESOURCES + "/" + N_RESOURCELOADERS + "/" + N_LOADER,
A_CLASS,
CmsConfigurationException.class);
digester.addCallMethod(
"*/" + N_VFS + "/" + N_RESOURCES + "/" + N_RESOURCELOADERS + "/" + N_LOADER,
I_CmsConfigurationParameterHandler.INIT_CONFIGURATION_METHOD);
digester.addSetNext("*/" + N_VFS + "/" + N_RESOURCES + "/" + N_RESOURCELOADERS + "/" + N_LOADER, "addLoader");
// add rules for resource types
addResourceTypeXmlRules(digester);
// add rules for VFS content collectors
digester.addCallMethod(
"*/" + N_VFS + "/" + N_RESOURCES + "/" + N_COLLECTORS + "/" + N_COLLECTOR,
"addContentCollector",
2);
digester.addCallParam("*/" + N_VFS + "/" + N_RESOURCES + "/" + N_COLLECTORS + "/" + N_COLLECTOR, 0, A_CLASS);
digester.addCallParam("*/" + N_VFS + "/" + N_RESOURCES + "/" + N_COLLECTORS + "/" + N_COLLECTOR, 1, A_ORDER);
// generic <param> parameter rules
digester.addCallMethod(
"*/" + I_CmsXmlConfiguration.N_PARAM,
I_CmsConfigurationParameterHandler.ADD_PARAMETER_METHOD,
2);
digester.addCallParam("*/" + I_CmsXmlConfiguration.N_PARAM, 0, I_CmsXmlConfiguration.A_NAME);
digester.addCallParam("*/" + I_CmsXmlConfiguration.N_PARAM, 1);
// add rule for default files
digester.addCallMethod("*/" + N_VFS + "/" + N_DEFAULTFILES + "/" + N_DEFAULTFILE, "addDefaultFile", 1);
digester.addCallParam("*/" + N_VFS + "/" + N_DEFAULTFILES + "/" + N_DEFAULTFILE, 0, A_NAME);
// add rules for file translations
digester.addCallMethod(
"*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FILETRANSLATIONS + "/" + N_TRANSLATION,
"addFileTranslation",
0);
digester.addCallMethod(
"*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FILETRANSLATIONS,
"setFileTranslationEnabled",
1);
digester.addCallParam("*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FILETRANSLATIONS, 0, A_ENABLED);
// add rules for file translations
digester.addCallMethod(
"*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FOLDERTRANSLATIONS + "/" + N_TRANSLATION,
"addFolderTranslation",
0);
digester.addCallMethod(
"*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FOLDERTRANSLATIONS,
"setFolderTranslationEnabled",
1);
digester.addCallParam("*/" + N_VFS + "/" + N_TRANSLATIONS + "/" + N_FOLDERTRANSLATIONS, 0, A_ENABLED);
// XML content type manager creation rules
digester.addObjectCreate("*/" + N_VFS + "/" + N_XMLCONTENT, CmsXmlContentTypeManager.class);
digester.addSetNext("*/" + N_VFS + "/" + N_XMLCONTENT, "setXmlContentTypeManager");
// XML content widgets add rules
digester.addCallMethod("*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_WIDGETS + "/" + N_WIDGET, "addWidget", 2);
digester.addCallParam("*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_WIDGETS + "/" + N_WIDGET, 0, A_CLASS);
digester.addCallParam("*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_WIDGETS + "/" + N_WIDGET, 1, A_ALIAS);
// XML content schema type add rules
digester.addCallMethod(
"*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_SCHEMATYPES + "/" + N_SCHEMATYPE,
"addSchemaType",
2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -