/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.util.xml;
import com.liferay.util.xml.descriptor.PortletAppDescriptor;
import com.liferay.util.xml.descriptor.StrictXMLDescriptor;
import com.liferay.util.xml.descriptor.StrutsConfigDescriptor;
import com.liferay.util.xml.descriptor.TilesDefsDescriptor;
import com.liferay.util.xml.descriptor.WebXML23Descriptor;
import com.liferay.util.xml.descriptor.WebXML24Descriptor;
import com.liferay.util.xml.descriptor.XMLDescriptor;
import org.dom4j.Document;
/**
* @author Jorge Ferrer
*/
public class XMLTypeDetector {
public static final XMLDescriptor[] REGISTERED_DESCRIPTORS = {
new PortletAppDescriptor(), new StrutsConfigDescriptor(),
new TilesDefsDescriptor(), new WebXML23Descriptor(),
new WebXML24Descriptor()
};
public static XMLDescriptor determineType(String doctype, Document root) {
for (int i = 0; i < REGISTERED_DESCRIPTORS.length; i++) {
XMLDescriptor descriptor = REGISTERED_DESCRIPTORS[i];
if (descriptor.canHandleType(doctype, root)) {
return descriptor;
}
}
return new StrictXMLDescriptor();
}
}