All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.topologi.diffx.event.impl.EventFactory Maven / Gradle / Ivy

Go to download

docx4j is a library which helps you to work with the Office Open XML file format as used in docx documents, pptx presentations, and xlsx spreadsheets.

There is a newer version: 6.1.2
Show newest version
package com.topologi.diffx.event.impl;

import com.topologi.diffx.Docx4jDriver;
import com.topologi.diffx.event.AttributeEvent;
import com.topologi.diffx.event.CloseElementEvent;
import com.topologi.diffx.event.OpenElementEvent;

/**
 * Factory for events.
 * 
 * 

This class is designed to returned events that are optimised for the type of sequence * that it is being inserted in. * *

Non-namespace aware objects are lighter than namespace aware ones. * * @author Christophe Lauret * @version 27 April 2005 */ public final class EventFactory { // class attributes --------------------------------------------------------------------- /** * Indicates whether the factory should generate namespace events. */ private boolean isNamespaceAware = true; // constructors ------------------------------------------------------------------------- /** * Creates a new namespace aware factory for events. */ public EventFactory() { this.isNamespaceAware = true; } /** * Creates a factory for events. * * @param isNamespaceAware true to create new namespace aware factory; * false otherwise. */ public EventFactory(boolean isNamespaceAware) { this.isNamespaceAware = isNamespaceAware; } // methods ------------------------------------------------------------------------------ /** * Returns the open element event from the uri and name given. * *

If the factory is namespace aware, it returns an open element implementation * using the namespace URI and the name. * *

If the factory is NOT namespace aware, it returns an open element implementation * using the specified name. * *

Use this implementation if the name of the element is determined prior to the * call of this method. * * @param uri The namespace URI of the element (ignored if not namespace aware) * @param name The name of the element. * * @return The open element event from the uri and name given. */ public OpenElementEvent makeOpenElement(String uri, String name) { if (this.isNamespaceAware) { return new OpenElementEventNSImpl(uri, name); } else { return new OpenElementEventImpl(name); } } /** * Returns the open element event from the uri and names given. * *

If the factory is namespace aware, it returns an open element implementation * using the namespace URI and the local name. * *

If the factory is NOT namespace aware, it returns an open element implementation * using the qName (namespace-prefixed name). * * @param uri The namespace URI of the element (ignored if not namespace aware) * @param localName The local name of the element. * @param qName The qualified name of the element. * * @return The open element event from the uri and name given. */ public OpenElementEvent makeOpenElement(String uri, String localName, String qName) { if (this.isNamespaceAware) { return new OpenElementEventNSImpl(uri, localName); } else { return new OpenElementEventImpl(qName); } } /** * Returns the close element event from the corresponding open element event. * * @param open The corresponding open element event. * * @return The close element event from the corresponding open element event. */ public CloseElementEvent makeCloseElement(OpenElementEvent open) { if (this.isNamespaceAware) { return new CloseElementEventNSImpl(open); } else { return new CloseElementEventImpl(open); } } /** * Returns the attribute event from the name and value given. * *

If the factory is namespace aware, it returns an attribute implementation * using the namespace URI and the name. * *

If the factory is NOT namespace aware, it returns an attribute implementation * using the specified name. * *

Use this implementation if the name of the element is determined prior to the * call of this method. * * @param uri The namespace URI of the attribute (ignored if not namespace aware) * @param name The name of the attribute. * @param value The value of the attribute. * * @return The open element event from the uri and name given. */ public AttributeEvent makeAttribute(String uri, String name, String value) { if (this.isNamespaceAware) { return new AttributeEventNSImpl("".equals(uri)? null : uri, name, value); } else { return new AttributeEventImpl(name, value); } } /** * Returns the attribute event from the name and value given. * *

If the factory is namespace aware, it returns an attribute implementation * using the namespace URI and the local name. * *

If the factory is NOT namespace aware, it returns an attribute implementation * using the qName (namespace-prefixed name). * * @param uri The namespace URI of the attribute (ignored if not namespace aware) * @param localName The local name of the attribute. * @param qName The qualified name of the attribute. * @param value The value of the attribute. * * @return The open element event from the uri and name given. */ public AttributeEvent makeAttribute(String uri, String localName, String qName, String value) { // if (localName.equals("space")) { // Docx4jDriver.log("space!"); // Docx4jDriver.log(uri); // Docx4jDriver.log(qName); // } if (this.isNamespaceAware) { return new AttributeEventNSImpl("".equals(uri)? null : uri, localName, value); } else { return new AttributeEventImpl(qName, value); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy