Update of /var/cvs/src/org/mmbase/datatypes/util/xml
In directory james.mmbase.org:/tmp/cvs-serv19989
Modified Files:
DataTypeDefinition.java DataTypeReader.java
Added Files:
DependencyException.java
Log Message:
MMB-1586
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes/util/xml
See also: http://www.mmbase.org/jira/browse/MMB-1586
DependencyException.java is new
Index: DataTypeDefinition.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/util/xml/DataTypeDefinition.java,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- DataTypeDefinition.java 10 Aug 2007 13:05:19 -0000 1.61
+++ DataTypeDefinition.java 28 Jan 2008 16:27:38 -0000 1.62
@@ -30,7 +30,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: DataTypeDefinition.java,v 1.61 2007/08/10 13:05:19 michiel
Exp $
+ * @version $Id: DataTypeDefinition.java,v 1.62 2008/01/28 16:27:38 michiel
Exp $
* @since MMBase-1.8
**/
public class DataTypeDefinition {
@@ -119,7 +119,7 @@
/**
* Configures the data type definition, using data from a DOM element
*/
- DataTypeDefinition configure(Element dataTypeElement, BasicDataType<?>
requestBaseDataType) {
+ DataTypeDefinition configure(Element dataTypeElement, BasicDataType<?>
requestBaseDataType) throws DependencyException {
String id = DataTypeXml.getAttribute(dataTypeElement, "id");
@@ -145,7 +145,8 @@
}
if (definedBaseDataType == null) {
- log.warn("Attribute 'base' ('" + base + "') of datatype '" +
id + "' is an unknown datatype.");
+ log.debug("Attribute 'base' ('" + base + "') of datatype '" +
id + "' is an unknown datatype (in " +
dataTypeElement.getOwnerDocument().getDocumentURI() + ").");
+ throw new DependencyException(dataTypeElement,
requestBaseDataType, this);
} else {
requestBaseDataType = definedBaseDataType;
}
Index: DataTypeReader.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/util/xml/DataTypeReader.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- DataTypeReader.java 14 Oct 2006 14:35:39 -0000 1.21
+++ DataTypeReader.java 28 Jan 2008 16:27:38 -0000 1.22
@@ -9,6 +9,7 @@
*/
package org.mmbase.datatypes.util.xml;
+import java.util.*;
import org.w3c.dom.*;
import org.w3c.dom.NodeList;
@@ -20,7 +21,7 @@
* This class contains static methods used for reading a 'datatypes' XML into
a DataTypeCollector.
*
* @author Pierre van Rooden
- * @version $Id: DataTypeReader.java,v 1.21 2006/10/14 14:35:39 nklasens Exp $
+ * @version $Id: DataTypeReader.java,v 1.22 2008/01/28 16:27:38 michiel Exp $
* @since MMBase-1.8
**/
public class DataTypeReader {
@@ -50,15 +51,17 @@
/**
* Initialize the data types default supported by the system.
*/
- public static void readDataTypes(Element dataTypesElement,
DataTypeCollector collector) {
- readDataTypes(dataTypesElement, collector, null);
+ public static List<DependencyException> readDataTypes(Element
dataTypesElement, DataTypeCollector collector) {
+ return readDataTypes(dataTypesElement, collector, null);
}
/**
* Initialize the data types default supported by the system.
+ * @return a list of failures.
*/
- public static void readDataTypes(Element dataTypesElement,
DataTypeCollector collector, BasicDataType baseDataType) {
+ public static List<DependencyException> readDataTypes(Element
dataTypesElement, DataTypeCollector collector, BasicDataType baseDataType) {
NodeList childNodes = dataTypesElement.getChildNodes();
+ List<DependencyException> failed = new
ArrayList<DependencyException>();
for (int k = 0; k < childNodes.getLength(); k++) {
if (childNodes.item(k) instanceof Element) {
Element childElement = (Element) childNodes.item(k);
@@ -79,17 +82,21 @@
}
readDataTypes(childElement, collector, dataType);
}
+ } catch (DependencyException de) {
+ de.setCollector(collector);
+ failed.add(de);
} catch (Exception e) {
log.error("Error while parsing element '" +
org.mmbase.util.xml.XMLWriter.write(childElement, true, true) + "': " +
e.getMessage(), e);
}
}
}
+ return failed;
}
/**
* Reads a datatype.
*/
- public static DataTypeDefinition readDataType(Element typeElement,
BasicDataType baseDataType, DataTypeCollector collector) {
+ public static DataTypeDefinition readDataType(Element typeElement,
BasicDataType baseDataType, DataTypeCollector collector) throws
DependencyException {
DataTypeDefinition definition = collector.getDataTypeDefinition();
definition.configure(typeElement, baseDataType);
definition.dataType.setXml(typeElement);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs