You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by cb...@apache.org on 2007/10/04 16:03:04 UTC
svn commit: r581916 -
/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
Author: cbowditch
Date: Thu Oct 4 07:03:03 2007
New Revision: 581916
URL: http://svn.apache.org/viewvc?rev=581916&view=rev
Log:
Bugzilla #42144
Missing File from previous commit
Submitted by Adrian Cumiskey <dev.at.cumiskey.com>
Added:
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
Added: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java?rev=581916&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java (added)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java Thu Oct 4 07:03:03 2007
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id: AbstractPSExtensionObject.java 426576 2006-07-28 15:44:37Z jeremias $ */
+
+package org.apache.fop.render.ps.extensions;
+
+// FOP
+import org.apache.fop.apps.FOPException;
+import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.ValidationException;
+import org.apache.fop.fo.extensions.ExtensionAttachment;
+
+import org.xml.sax.Locator;
+
+/**
+ * Base class for the PostScript-specific extension elements.
+ */
+public abstract class AbstractPSExtensionElement extends FONode {
+
+ /**
+ * extension attachment
+ */
+ protected PSExtensionAttachment attachment;
+
+ /**
+ * Default constructor
+ *
+ * @param parent parent of this node
+ * @see org.apache.fop.fo.FONode#FONode(FONode)
+ */
+ public AbstractPSExtensionElement(FONode parent) {
+ super(parent);
+ }
+
+ /**
+ * Blocks XSL FO's from having non-FO parents.
+ *
+ * @param loc location in the FO source file
+ * @param nsURI namespace of incoming node
+ * @param localName (e.g. "table" for "fo:table")
+ * @throws ValidationException if incoming node not valid for parent
+ * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
+ */
+ protected void validateChildNode(Locator loc, String nsURI, String localName)
+ throws ValidationException {
+ if (FO_URI.equals(nsURI)) {
+ invalidChildError(loc, nsURI, localName);
+ }
+ }
+
+ /**
+ * Adds characters (does nothing here)
+ * @param data array of characters containing text to be added
+ * @param start starting array element to add
+ * @param length of data array to add
+ * @param pList currently applicable PropertyList
+ * @param locator location in fo source file.
+ * @see org.apache.fop.fo.FONode#addCharacters(char[], int, int, PropertyList, Locator)
+ */
+ protected void addCharacters(char[] data, int start, int length,
+ PropertyList pList, Locator locator) {
+ PSExtensionAttachment a = (PSExtensionAttachment)getExtensionAttachment();
+ if (a.getContent() != null) {
+ StringBuffer sb = new StringBuffer(a.getContent());
+ sb.append(data, start, length - start);
+ a.setContent(sb.toString());
+ } else {
+ a.setContent(new String(data, start, length - start));
+ }
+ }
+
+ /**
+ * @return a String representation of this object
+ * @see org.apache.fop.fo.FONode#getNamespaceURI()
+ */
+ public String getNamespaceURI() {
+ return PSExtensionElementMapping.NAMESPACE;
+ }
+
+ /**
+ * @return a String representation of this object
+ * @see org.apache.fop.fo.FONode#getNormalNamespacePrefix()
+ */
+ public String getNormalNamespacePrefix() {
+ return "fox";
+ }
+
+ /**
+ * @see org.apache.fop.fo.FONode#endOfNode()
+ * @throws FOPException if there's a problem during processing
+ */
+ protected void endOfNode() throws FOPException {
+ super.endOfNode();
+ String s = ((PSExtensionAttachment)getExtensionAttachment()).getContent();
+ if (s == null || s.length() == 0) {
+ missingChildElementError("#PCDATA");
+ }
+ }
+
+ /**
+ * @return the extension attachment if one is created by the extension element, null otherwise.
+ * @see org.apache.fop.fo.FONode#getExtensionAttachment()
+ */
+ public ExtensionAttachment getExtensionAttachment() {
+ if (attachment == null) {
+ this.attachment = (PSExtensionAttachment)instantiateExtensionAttachment();
+ }
+ return this.attachment;
+ }
+
+ /**
+ * Instantiates extension attachment object
+ * @return extension attachment
+ */
+ protected abstract ExtensionAttachment instantiateExtensionAttachment();
+}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org