📄 cmsvfsconfiguration.java
字号:
digester.addCallParam("*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_SCHEMATYPES + "/" + N_SCHEMATYPE, 0, A_CLASS);
digester.addCallParam(
"*/" + N_VFS + "/" + N_XMLCONTENT + "/" + N_SCHEMATYPES + "/" + N_SCHEMATYPE,
1,
A_DEFAULTWIDGET);
}
/**
* @see org.opencms.configuration.I_CmsXmlConfiguration#generateXml(org.dom4j.Element)
*/
public Element generateXml(Element parent) {
if (OpenCms.getRunLevel() >= OpenCms.RUNLEVEL_3_SHELL_ACCESS) {
m_resourceManager = OpenCms.getResourceManager();
m_xmlContentTypeManager = OpenCms.getXmlContentTypeManager();
m_defaultFiles = OpenCms.getDefaultFiles();
}
// generate vfs node and subnodes
Element vfs = parent.addElement(N_VFS);
// add resources main element
Element resources = vfs.addElement(N_RESOURCES);
// add resource loader
Element resourceloadersElement = resources.addElement(N_RESOURCELOADERS);
List loaders = m_resourceManager.getLoaders();
for (int i = 0; i < loaders.size(); i++) {
I_CmsResourceLoader loader = (I_CmsResourceLoader)loaders.get(i);
// add the loader node
Element loaderNode = resourceloadersElement.addElement(N_LOADER);
loaderNode.addAttribute(A_CLASS, loader.getClass().getName());
Map loaderConfiguration = loader.getConfiguration();
if (loaderConfiguration != null) {
Iterator it = loaderConfiguration.keySet().iterator();
while (it.hasNext()) {
String name = (String)it.next();
String value = loaderConfiguration.get(name).toString();
Element paramNode = loaderNode.addElement(N_PARAM);
paramNode.addAttribute(A_NAME, name);
paramNode.addText(value);
}
}
}
// add resource types
Element resourcetypesElement = resources.addElement(N_RESOURCETYPES);
List resourceTypes = m_resourceManager.getResourceTypes();
generateResourceTypeXml(resourcetypesElement, resourceTypes, false);
// add VFS content collectors
Element collectorsElement = resources.addElement(N_COLLECTORS);
Iterator it = m_resourceManager.getRegisteredContentCollectors().iterator();
while (it.hasNext()) {
I_CmsResourceCollector collector = (I_CmsResourceCollector)it.next();
collectorsElement.addElement(N_COLLECTOR).addAttribute(A_CLASS, collector.getClass().getName()).addAttribute(
A_ORDER,
String.valueOf(collector.getOrder()));
}
// add default file names
Element defaultFileElement = vfs.addElement(N_DEFAULTFILES);
it = m_defaultFiles.iterator();
while (it.hasNext()) {
defaultFileElement.addElement(N_DEFAULTFILE).addAttribute(A_NAME, (String)it.next());
}
// add translation rules
Element translationsElement = vfs.addElement(N_TRANSLATIONS);
// file translation rules
Element fileTransElement = translationsElement.addElement(N_FILETRANSLATIONS).addAttribute(
A_ENABLED,
new Boolean(m_fileTranslationEnabled).toString());
it = m_fileTranslations.iterator();
while (it.hasNext()) {
fileTransElement.addElement(N_TRANSLATION).setText(it.next().toString());
}
// folder translation rules
Element folderTransElement = translationsElement.addElement(N_FOLDERTRANSLATIONS).addAttribute(
A_ENABLED,
new Boolean(m_folderTranslationEnabled).toString());
it = m_folderTranslations.iterator();
while (it.hasNext()) {
folderTransElement.addElement(N_TRANSLATION).setText(it.next().toString());
}
// XML content configuration
Element xmlContentsElement = vfs.addElement(N_XMLCONTENT);
// XML widgets
Element xmlWidgetsElement = xmlContentsElement.addElement(N_WIDGETS);
it = m_xmlContentTypeManager.getRegisteredWidgetNames().iterator();
while (it.hasNext()) {
String widget = (String)it.next();
Element widgetElement = xmlWidgetsElement.addElement(N_WIDGET).addAttribute(A_CLASS, widget);
String alias = m_xmlContentTypeManager.getRegisteredWidgetAlias(widget);
if (alias != null) {
widgetElement.addAttribute(A_ALIAS, alias);
}
}
// XML content types
Element xmlSchemaTypesElement = xmlContentsElement.addElement(N_SCHEMATYPES);
it = m_xmlContentTypeManager.getRegisteredSchemaTypes().iterator();
while (it.hasNext()) {
I_CmsXmlSchemaType type = (I_CmsXmlSchemaType)it.next();
I_CmsWidget widget = m_xmlContentTypeManager.getWidgetDefault(type.getTypeName());
xmlSchemaTypesElement.addElement(N_SCHEMATYPE).addAttribute(A_CLASS, type.getClass().getName()).addAttribute(
A_DEFAULTWIDGET,
widget.getClass().getName());
}
// return the vfs node
return vfs;
}
/**
* Returns the (umodifiable) list of configured directory default files.<p>
*
* @return the (umodifiable) list of configured directory default files
*/
public List getDefaultFiles() {
return Collections.unmodifiableList(m_defaultFiles);
}
/**
* @see org.opencms.configuration.I_CmsXmlConfiguration#getDtdFilename()
*/
public String getDtdFilename() {
return CONFIGURATION_DTD_NAME;
}
/**
* Returns the file resource translator that has been initialized
* with the configured file translation rules.<p>
*
* @return the file resource translator
*/
public CmsResourceTranslator getFileTranslator() {
String[] array = m_fileTranslationEnabled ? new String[m_fileTranslations.size()] : new String[0];
for (int i = 0; i < m_fileTranslations.size(); i++) {
array[i] = (String)m_fileTranslations.get(i);
}
return new CmsResourceTranslator(array, true);
}
/**
* Returns the folder resource translator that has been initialized
* with the configured folder translation rules.<p>
*
* @return the folder resource translator
*/
public CmsResourceTranslator getFolderTranslator() {
String[] array = m_folderTranslationEnabled ? new String[m_folderTranslations.size()] : new String[0];
for (int i = 0; i < m_folderTranslations.size(); i++) {
array[i] = (String)m_folderTranslations.get(i);
}
return new CmsResourceTranslator(array, false);
}
/**
* Returns the initialized resource manager.<p>
*
* @return the initialized resource manager
*/
public CmsResourceManager getResourceManager() {
return m_resourceManager;
}
/**
* Returns the configured XML content type manager.<p>
*
* @return the configured XML content type manager
*/
public CmsXmlContentTypeManager getXmlContentTypeManager() {
return m_xmlContentTypeManager;
}
/**
* Will be called when configuration of this object is finished.<p>
*/
public void initializeFinished() {
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_CONFIG_FINISHED_0));
}
}
/**
* Enables or disables the file translation rules.<p>
*
* @param value if <code>"true"</code>, file translation is enabled, otherwise it is disabled
*/
public void setFileTranslationEnabled(String value) {
m_fileTranslationEnabled = Boolean.valueOf(value).booleanValue();
if (CmsLog.INIT.isInfoEnabled()) {
if (m_fileTranslationEnabled) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_FILE_TRANSLATION_ENABLE_0));
} else {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_FILE_TRANSLATION_DISABLE_0));
}
}
}
/**
* Enables or disables the folder translation rules.<p>
*
* @param value if <code>"true"</code>, folder translation is enabled, otherwise it is disabled
*/
public void setFolderTranslationEnabled(String value) {
m_folderTranslationEnabled = Boolean.valueOf(value).booleanValue();
if (CmsLog.INIT.isInfoEnabled()) {
if (m_folderTranslationEnabled) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_FOLDER_TRANSLATION_ENABLE_0));
} else {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_FOLDER_TRANSLATION_DISABLE_0));
}
}
}
/**
* Sets the generated resource manager.<p>
*
* @param manager the resource manager to set
*/
public void setResourceManager(CmsResourceManager manager) {
m_resourceManager = manager;
}
/**
* Sets the generated XML content type manager.<p>
*
* @param manager the generated XML content type manager to set
*/
public void setXmlContentTypeManager(CmsXmlContentTypeManager manager) {
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_VFS_XML_CONTENT_FINISHED_0));
}
m_xmlContentTypeManager = manager;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -