/* Woodstox Lite ("wool") XML processor
 *
 * Copyright (c) 2006- Tatu Saloranta, tatu.saloranta@iki.fi
 *
 * Licensed under the License specified in the file LICENSE which is
 * included with the source code.
 * You may not use this file except in compliance with the License.
 *
 * 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.
 */

package com.fasterxml.aalto.out;

import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;

This class is similar to PName, in that it implements an efficient representation of prefixed names, but one used on output (Writer) side.

Note: unlike with Reader-side prefixed names, here we can not assume that components are intern()ed.

/** * This class is similar to {@link com.fasterxml.aalto.in.PName}, in * that it implements an efficient representation of prefixed names, * but one used on output (Writer) side. *<p> * Note: unlike with Reader-side prefixed names, here we can not * assume that components are <code>intern()</code>ed. */
final class CharWName extends WName { final char[] _chars; public CharWName(String localName) { super(localName); _chars = localName.toCharArray(); } public CharWName(String prefix, String localName) { super(prefix, localName); int plen = prefix.length(); int llen = localName.length(); _chars = new char[plen + 1 + llen]; prefix.getChars(0, plen, _chars, 0); _chars[plen] = ':'; localName.getChars(0, llen, _chars, plen+1); } @Override public final int serializedLength() { return _chars.length; } @Override public int appendBytes(byte[] buffer, int offset) { throw new RuntimeException("Internal error: appendBytes() should never be called"); } @Override public void writeBytes(OutputStream out) throws IOException { throw new RuntimeException("Internal error: writeBytes() should never be called"); } @Override public int appendChars(char[] buffer, int offset) { int len = _chars.length; System.arraycopy(_chars, 0, buffer, offset, len); return len; } @Override public void writeChars(Writer w) throws IOException { w.write(_chars); } @Override public String toString() { if (_prefix != null) { return new String(_chars); } return _localName; } }