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

com.sun.xml.bind.v2.runtime.output.Pcdata Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package com.sun.xml.bind.v2.runtime.output;

import java.io.IOException;

/**
 * Text data in XML.
 *
 * 

* This class is used inside the marshaller/unmarshaller to * send/receive text data. * *

* On top of {@link CharSequence}, this class has an * ability to write itself to the {@link XmlOutput}. This allows * the implementation to choose the most efficient way possible * when writing to XML (for example, it can skip the escaping * of buffer copying.) * * TODO: visitor pattern support? * * @author Kohsuke Kawaguchi */ public abstract class Pcdata implements CharSequence { /** * Writes itself to {@link UTF8XmlOutput}. * *

* This is the most performance critical path for the marshaller, * so it warrants its own method. */ public abstract void writeTo(UTF8XmlOutput output) throws IOException; /** * Writes itself to the character array. * *

* This method is used by most other {@link XmlOutput}. * The default implementation involves in one extra char[] copying. * *

* The caller must provide a big enough buffer that can hold * enough characters returned by the {@link #length()} method. */ public void writeTo(char[] buf, int start) { toString().getChars(0,length(),buf,start); } public abstract String toString(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy