gmazza 2005/03/10 15:32:45 Modified: src/java/org/apache/fop/fo/pagination RepeatablePageMasterReference.java SimplePageMaster.java PageSequence.java Root.java PageSequenceMaster.java ConditionalPageMasterReference.java SinglePageMasterReference.java LayoutMasterSet.java src/java/org/apache/fop/fo FONode.java Log: Validation added for master-name and master-reference properties. Revision Changes Path 1.25 +5 -1 xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java Index: RepeatablePageMasterReference.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- RepeatablePageMasterReference.java 24 Nov 2004 21:07:29 -0000 1.24 +++ RepeatablePageMasterReference.java 10 Mar 2005 23:32:44 -0000 1.25 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -59,6 +59,10 @@ public void bind(PropertyList pList) throws FOPException { masterReference = pList.get(PR_MASTER_REFERENCE).getString(); maximumRepeats = pList.get(PR_MAXIMUM_REPEATS); + + if (masterReference == null || masterReference.equals("")) { + missingPropertyError("master-reference"); + } } /** 1.31 +5 -1 xml-fop/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java Index: SimplePageMaster.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- SimplePageMaster.java 28 Oct 2004 10:00:23 -0000 1.30 +++ SimplePageMaster.java 10 Mar 2005 23:32:44 -0000 1.31 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -78,6 +78,10 @@ pageWidth = pList.get(PR_PAGE_WIDTH).getLength(); referenceOrientation = pList.get(PR_REFERENCE_ORIENTATION).getNumeric(); writingMode = pList.getWritingMode(); + + if (masterName == null || masterName.equals("")) { + missingPropertyError("master-name"); + } } /** 1.59 +7 -3 xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java Index: PageSequence.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- PageSequence.java 18 Feb 2005 03:54:50 -0000 1.58 +++ PageSequence.java 10 Mar 2005 23:32:44 -0000 1.59 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -108,6 +108,10 @@ initialPageNumber = pList.get(PR_INITIAL_PAGE_NUMBER).getNumeric(); forcePageCount = pList.get(PR_FORCE_PAGE_COUNT).getEnum(); masterReference = pList.get(PR_MASTER_REFERENCE).getString(); + + if (masterReference == null || masterReference.equals("")) { + missingPropertyError("master-reference"); + } } /** @@ -124,8 +128,8 @@ root.getLayoutMasterSet().getPageSequenceMaster(masterReference); if (this.pageSequenceMaster == null) { throw new ValidationException("master-reference '" + masterReference - + "' for fo:page-sequence matches no" - + " simple-page-master or page-sequence-master", locator); + + "' for fo:page-sequence matches no" + + " simple-page-master or page-sequence-master", locator); } else { pageSequenceMaster.reset(); } 1.42 +8 -2 xml-fop/src/java/org/apache/fop/fo/pagination/Root.java Index: Root.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Root.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- Root.java 1 Mar 2005 00:11:03 -0000 1.41 +++ Root.java 10 Mar 2005 23:32:44 -0000 1.42 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.ValidationException; import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; -import org.apache.fop.fo.extensions.ExtensionElementMapping; /** * The fo:root formatting object. Contains page masters, page-sequences. @@ -260,6 +259,13 @@ } /** + * @see org.apache.fop.fo.FONode#getRoot() + */ + public Root getRoot() { + return this; + } + + /** * @see org.apache.fop.fo.FObj#getName() */ public String getName() { 1.27 +7 -14 xml-fop/src/java/org/apache/fop/fo/pagination/PageSequenceMaster.java Index: PageSequenceMaster.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/PageSequenceMaster.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- PageSequenceMaster.java 28 Oct 2004 10:00:23 -0000 1.26 +++ PageSequenceMaster.java 10 Mar 2005 23:32:44 -0000 1.27 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,6 +63,10 @@ */ public void bind(PropertyList pList) throws FOPException { masterName = pList.get(PR_MASTER_NAME).getString(); + + if (masterName == null || masterName.equals("")) { + missingPropertyError("master-name"); + } } /** @@ -70,19 +74,8 @@ */ protected void startOfNode() throws FOPException { subSequenceSpecifiers = new java.util.ArrayList(); - if (parent.getName().equals("fo:layout-master-set")) { - this.layoutMasterSet = (LayoutMasterSet)parent; - if (masterName == null) { - getLogger().warn("page-sequence-master does not have " - + "a master-name and so is being ignored"); - } else { - this.layoutMasterSet.addPageSequenceMaster(masterName, this); - } - } else { - throw new ValidationException("fo:page-sequence-master must be child " - + "of fo:layout-master-set, not " - + parent.getName(), locator); - } + layoutMasterSet = parent.getRoot().getLayoutMasterSet(); + layoutMasterSet.addPageSequenceMaster(masterName, this); } /** 1.24 +8 -26 xml-fop/src/java/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java Index: ConditionalPageMasterReference.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/ConditionalPageMasterReference.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- ConditionalPageMasterReference.java 24 Nov 2004 21:07:29 -0000 1.23 +++ ConditionalPageMasterReference.java 10 Mar 2005 23:32:44 -0000 1.24 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,13 +60,19 @@ pagePosition = pList.get(PR_PAGE_POSITION).getEnum(); oddOrEven = pList.get(PR_ODD_OR_EVEN).getEnum(); blankOrNotBlank = pList.get(PR_BLANK_OR_NOT_BLANK).getEnum(); + + if (masterReference == null || masterReference.equals("")) { + missingPropertyError("master-reference"); + } } /** * @see org.apache.fop.fo.FONode#startOfNode */ protected void startOfNode() throws FOPException { - validateParent(parent); + this.repeatablePageMasterAlternatives = + (RepeatablePageMasterAlternatives) parent; + this.repeatablePageMasterAlternatives.addConditionalPageMasterReference(this); } /** @@ -134,30 +140,6 @@ } /** - * Check that the parent is the right type of formatting object - * repeatable-page-master-alternatives. - * @param parent parent node - * @throws ValidationException If the parent is invalid - */ - protected void validateParent(FONode parent) throws ValidationException { - if (parent.getName().equals("fo:repeatable-page-master-alternatives")) { - this.repeatablePageMasterAlternatives = - (RepeatablePageMasterAlternatives)parent; - - if (getMasterReference() == null) { - getLogger().warn("single-page-master-reference" - + "does not have a master-name and so is being ignored"); - } else { - this.repeatablePageMasterAlternatives.addConditionalPageMasterReference(this); - } - } else { - throw new ValidationException("fo:conditional-page-master-reference must be child " - + "of fo:repeatable-page-master-alternatives, not " - + parent.getName(), locator); - } - } - - /** * Returns the "master-reference" property. */ public String getMasterReference() { 1.18 +6 -6 xml-fop/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java Index: SinglePageMasterReference.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- SinglePageMasterReference.java 28 Oct 2004 10:00:23 -0000 1.17 +++ SinglePageMasterReference.java 10 Mar 2005 23:32:44 -0000 1.18 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,6 +57,10 @@ */ public void bind(PropertyList pList) throws FOPException { masterReference = pList.get(PR_MASTER_REFERENCE).getString(); + + if (masterReference == null || masterReference.equals("")) { + missingPropertyError("master-reference"); + } } /** @@ -64,11 +68,7 @@ */ protected void startOfNode() throws FOPException { PageSequenceMaster pageSequenceMaster = (PageSequenceMaster) parent; - if (masterReference == null) { - missingPropertyError("master-reference"); - } else { - pageSequenceMaster.addSubsequenceSpecifier(this); - } + pageSequenceMaster.addSubsequenceSpecifier(this); } /** 1.29 +2 -4 xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java Index: LayoutMasterSet.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- LayoutMasterSet.java 28 Oct 2004 10:00:23 -0000 1.28 +++ LayoutMasterSet.java 10 Mar 2005 23:32:44 -0000 1.29 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,10 +65,8 @@ if (parent.getName().equals("fo:root")) { Root root = (Root)parent; root.setLayoutMasterSet(this); - } else { - throw new ValidationException("fo:layout-master-set must be child of fo:root, not " - + parent.getName(), locator); } + simplePageMasters = new java.util.HashMap(); pageSequenceMasters = new java.util.HashMap(); } 1.57 +9 -0 xml-fop/src/java/org/apache/fop/fo/FONode.java Index: FONode.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FONode.java,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- FONode.java 5 Mar 2005 04:52:06 -0000 1.56 +++ FONode.java 10 Mar 2005 23:32:45 -0000 1.57 @@ -31,6 +31,7 @@ import org.apache.fop.apps.FOUserAgent; import org.apache.fop.fo.extensions.ExtensionElementMapping; import org.apache.fop.fo.extensions.svg.SVGElementMapping; +import org.apache.fop.fo.pagination.Root; import org.apache.fop.util.CharUtilities; /** @@ -407,6 +408,14 @@ } /** + * Returns the root node of this tree + * @return the root node + */ + public Root getRoot() { + return parent.getRoot(); + } + + /** * Returns the name of the node * @return the name of this node */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]