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

org.eclipse.persistence.internal.oxm.MarshalRecordContentHandler Maven / Gradle / Ivy

There is a newer version: 4.0.2
Show newest version
/*
 * Copyright (c) 1998, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

// Contributors:
//     Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.oxm;

import org.eclipse.persistence.internal.oxm.record.ExtendedContentHandler;
import org.eclipse.persistence.internal.oxm.record.MarshalRecord;
import org.xml.sax.Attributes;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;

/**
 * INTERNAL:
 * 

Purpose: This class is used to tranfer SAX events to a TopLink OXM * Marshal Record. Used by XMLFragment mappings to write peices of XML to a * marshal record.

*/ public class MarshalRecordContentHandler implements ExtendedContentHandler { protected MarshalRecord marshalRecord; protected NamespaceResolver resolver; public MarshalRecordContentHandler(MarshalRecord record, NamespaceResolver resolver) { marshalRecord = record; this.resolver = resolver; } public void setMarshalRecord(MarshalRecord record) { this.marshalRecord = record; } public MarshalRecord getMarshalRecord() { return marshalRecord; } public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { XPathFragment frag = new XPathFragment(qName); marshalRecord.openStartElement(frag, resolver); for (int i = 0; i < atts.getLength(); i++) { marshalRecord.attribute(atts.getURI(i), atts.getLocalName(i), atts.getQName(i), atts.getValue(i)); } marshalRecord.closeStartElement(); } public void endElement(String namespaceURI, String localName, String qName) throws SAXException { XPathFragment frag = new XPathFragment(qName); marshalRecord.endElement(frag, resolver); } public void startPrefixMapping(String prefix, String uri) throws SAXException { marshalRecord.startPrefixMapping(prefix, uri); } public void processingInstruction(String target, String data) throws SAXException { //refContentHandler.processingInstruction(target, data); } public void setDocumentLocator(Locator locator) { //refContentHandler.setDocumentLocator(locator); } public void startDocument() throws SAXException { //do nothing. startDocument() on the content handler is not triggered when fragment on XMLMarshaller is true } public void endDocument() throws SAXException { //do nothing. startDocument() on the content handler is not triggered when fragment on XMLMarshaller is true } public void skippedEntity(String name) throws SAXException { //refContentHandler.skippedEntity(name); } public void endPrefixMapping(String prefix) throws SAXException { marshalRecord.endPrefixMapping(prefix); } public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { //refContentHandler.ignorableWhitespace(ch, start, length); } public void characters(char[] ch, int start, int length) throws SAXException { String characters = new String(ch, start, length); characters(characters); } public void characters(CharSequence charSequence) throws SAXException { String characters = charSequence.toString(); if (characters.trim().length() > 0) { marshalRecord.characters(characters); } } @Override public void setNil(boolean isNil) {} }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy