com.sun.xml.bind.v2.runtime.ValueListBeanInfoImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jaxb-impl Show documentation
Show all versions of jaxb-impl Show documentation
Old JAXB Runtime module. Contains sources required for runtime processing.
/*
* Copyright (c) 1997, 2021 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;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.List;
import javax.xml.bind.JAXBException;
import javax.xml.bind.ValidationEvent;
import javax.xml.bind.helpers.ValidationEventImpl;
import javax.xml.stream.XMLStreamException;
import com.sun.istack.FinalArrayList;
import com.sun.xml.bind.WhiteSpaceProcessor;
import com.sun.xml.bind.api.AccessorException;
import com.sun.xml.bind.v2.runtime.unmarshaller.Loader;
import com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext;
import org.xml.sax.SAXException;
/**
* {@link JaxBeanInfo} implementation that binds T[] to a list of simple types.
*
* @author Kohsuke Kawaguchi
*/
final class ValueListBeanInfoImpl extends JaxBeanInfo {
private final Class itemType;
private final Transducer xducer; // for items
public ValueListBeanInfoImpl(JAXBContextImpl owner, Class arrayType) throws JAXBException {
super(owner, null, arrayType, false, true, false);
this.itemType = jaxbType.getComponentType();
this.xducer = owner.getBeanInfo(arrayType.getComponentType(),true).getTransducer();
assert xducer!=null;
}
private final Loader loader = new Loader(true) {
@Override
public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException {
List