Update of /var/cvs/src/org/mmbase/datatypes/util/xml
In directory james.mmbase.org:/tmp/cvs-serv22577
Modified Files:
Tag: MMBase-1_8
DataTypeDefinition.java DataTypeReader.java
Added Files:
Tag: MMBase-1_8
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.55.2.2
retrieving revision 1.55.2.3
diff -u -b -r1.55.2.2 -r1.55.2.3
--- DataTypeDefinition.java 9 Oct 2007 07:16:21 -0000 1.55.2.2
+++ DataTypeDefinition.java 28 Jan 2008 18:43:28 -0000 1.55.2.3
@@ -34,7 +34,7 @@
*
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: DataTypeDefinition.java,v 1.55.2.2 2007/10/09 07:16:21
michiel Exp $
+ * @version $Id: DataTypeDefinition.java,v 1.55.2.3 2008/01/28 18:43:28
michiel Exp $
* @since MMBase-1.8
**/
public class DataTypeDefinition {
@@ -123,7 +123,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");
@@ -149,7 +149,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.20
retrieving revision 1.20.2.1
diff -u -b -r1.20 -r1.20.2.1
--- DataTypeReader.java 10 Apr 2006 15:21:37 -0000 1.20
+++ DataTypeReader.java 28 Jan 2008 18:43:28 -0000 1.20.2.1
@@ -22,7 +22,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.20 2006/04/10 15:21:37 michiel Exp $
+ * @version $Id: DataTypeReader.java,v 1.20.2.1 2008/01/28 18:43:28 michiel
Exp $
* @since MMBase-1.8
**/
public class DataTypeReader {
@@ -61,15 +61,16 @@
/**
* Initialize the data types default supported by the system.
*/
- public static void readDataTypes(Element dataTypesElement,
DataTypeCollector collector) {
- readDataTypes(dataTypesElement, collector, null);
+ public static List readDataTypes(Element dataTypesElement,
DataTypeCollector collector) {
+ return readDataTypes(dataTypesElement, collector, null);
}
/**
* Initialize the data types default supported by the system.
*/
- public static void readDataTypes(Element dataTypesElement,
DataTypeCollector collector, BasicDataType baseDataType) {
+ public static List readDataTypes(Element dataTypesElement,
DataTypeCollector collector, BasicDataType baseDataType) {
NodeList childNodes = dataTypesElement.getChildNodes();
+ List failed = new ArrayList();
for (int k = 0; k < childNodes.getLength(); k++) {
if (childNodes.item(k) instanceof Element) {
Element childElement = (Element) childNodes.item(k);
@@ -90,17 +91,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