static

in testing/xml-truth/src/main/java/org/apache/axiom/truth/xml/XMLTruth.java [60:260]


    static {
        factories = new ArrayList<>();
        factories.add(
                new XMLFactory<XML>() {
                    @Override
                    public Class<XML> getExpectedType() {
                        return XML.class;
                    }

                    @Override
                    public XML createXML(XML xml) {
                        return xml;
                    }
                });
        factories.add(
                new XMLFactory<InputStream>() {
                    @Override
                    public Class<InputStream> getExpectedType() {
                        return InputStream.class;
                    }

                    @Override
                    public XML createXML(final InputStream in) {
                        return new StAXXML(
                                new Parsable() {
                                    @Override
                                    XMLStreamReader createXMLStreamReader(XMLInputFactory factory)
                                            throws XMLStreamException {
                                        return factory.createXMLStreamReader(in);
                                    }
                                });
                    }
                });
        factories.add(
                new XMLFactory<Reader>() {
                    @Override
                    public Class<Reader> getExpectedType() {
                        return Reader.class;
                    }

                    @Override
                    public XML createXML(final Reader reader) {
                        return new StAXXML(
                                new Parsable() {
                                    @Override
                                    XMLStreamReader createXMLStreamReader(XMLInputFactory factory)
                                            throws XMLStreamException {
                                        return factory.createXMLStreamReader(reader);
                                    }
                                });
                    }
                });
        factories.add(
                new XMLFactory<StreamSource>() {
                    @Override
                    public Class<StreamSource> getExpectedType() {
                        return StreamSource.class;
                    }

                    @Override
                    public XML createXML(final StreamSource source) {
                        return new StAXXML(
                                new Parsable() {
                                    @Override
                                    XMLStreamReader createXMLStreamReader(XMLInputFactory factory)
                                            throws XMLStreamException {
                                        return factory.createXMLStreamReader(source);
                                    }
                                });
                    }
                });
        factories.add(
                new XMLFactory<InputSource>() {
                    @Override
                    public Class<InputSource> getExpectedType() {
                        return InputSource.class;
                    }

                    @Override
                    public XML createXML(InputSource is) {
                        StreamSource source = new StreamSource();
                        source.setInputStream(is.getByteStream());
                        source.setReader(is.getCharacterStream());
                        source.setPublicId(is.getPublicId());
                        source.setSystemId(is.getSystemId());
                        return xml(source);
                    }
                });
        factories.add(
                new XMLFactory<URL>() {
                    @Override
                    public Class<URL> getExpectedType() {
                        return URL.class;
                    }

                    @Override
                    public XML createXML(URL url) {
                        return xml(new StreamSource(url.toString()));
                    }
                });
        factories.add(
                new XMLFactory<File>() {
                    @Override
                    public Class<File> getExpectedType() {
                        return File.class;
                    }

                    @Override
                    public XML createXML(File file) {
                        return xml(new StreamSource(file.toURI().toString()));
                    }
                });
        factories.add(
                new XMLFactory<String>() {
                    @Override
                    public Class<String> getExpectedType() {
                        return String.class;
                    }

                    @Override
                    public XML createXML(String xml) {
                        return xml(new StringReader(xml));
                    }
                });
        factories.add(
                new XMLFactory<byte[]>() {
                    @Override
                    public Class<byte[]> getExpectedType() {
                        return byte[].class;
                    }

                    @Override
                    public XML createXML(byte[] bytes) {
                        return xml(new ByteArrayInputStream(bytes));
                    }
                });
        factories.add(
                new XMLFactory<Document>() {
                    @Override
                    public Class<Document> getExpectedType() {
                        return Document.class;
                    }

                    @Override
                    public XML createXML(Document document) {
                        return new DOMXML(document);
                    }
                });
        factories.add(
                new XMLFactory<Element>() {
                    @Override
                    public Class<Element> getExpectedType() {
                        return Element.class;
                    }

                    @Override
                    public XML createXML(Element element) {
                        return new DOMXML(element);
                    }
                });
        factories.add(
                new XMLFactory<XMLStreamReader>() {
                    @Override
                    public Class<XMLStreamReader> getExpectedType() {
                        return XMLStreamReader.class;
                    }

                    @Override
                    public XML createXML(final XMLStreamReader source) {
                        return new StAXXML(
                                new XMLStreamReaderProvider() {
                                    @Override
                                    XMLStreamReader getXMLStreamReader(
                                            boolean expandEntityReferences)
                                            throws XMLStreamException {
                                        if (expandEntityReferences) {
                                            throw new UnsupportedOperationException(
                                                    "Can't expand entity references on a user supplied XMLStreamReader");
                                        }
                                        return source;
                                    }
                                });
                    }
                });
        factories.add(
                new XMLFactory<StAXSource>() {
                    @Override
                    public Class<StAXSource> getExpectedType() {
                        return StAXSource.class;
                    }

                    @Override
                    public XML createXML(StAXSource source) {
                        return xml(source.getXMLStreamReader());
                    }
                });
        for (XMLFactory<?> factory :
                ServiceLoader.load(XMLFactory.class, XMLTruth.class.getClassLoader())) {
            factories.add(factory);
        }
    }