public static void write()

in repository/service/src/main/java/org/apache/karaf/cave/repository/service/bundlerepository/StaxParser.java [86:119]


    public static void write(XmlRepository repository, Writer os) throws XMLStreamException {
        XMLStreamWriter writer = getOutputFactory().createXMLStreamWriter(os);
        try {
            writer.writeStartDocument();
            writer.setDefaultNamespace(REPOSITORY_NAMESPACE);
            // repository element
            writer.writeStartElement(REPOSITORY_NAMESPACE, REPOSITORY);
            writer.writeAttribute("xmlns", REPOSITORY_NAMESPACE);
            writer.writeAttribute(REPO_NAME, repository.name);
            writer.writeAttribute(INCREMENT, Long.toString(repository.increment));
            // referrals
            for (Referral referral : repository.referrals) {
                writer.writeStartElement(REPOSITORY_NAMESPACE, REFERRAL);
                writer.writeAttribute(DEPTH, Integer.toString(referral.depth));
                writer.writeAttribute(URL, referral.url);
                writer.writeEndElement();
            }
            // resources
            for (Resource resource : repository.resources) {
                writer.writeStartElement(REPOSITORY_NAMESPACE, RESOURCE);
                for (Capability cap : resource.getCapabilities(null)) {
                    writeClause(writer, CAPABILITY, cap.getNamespace(), cap.getDirectives(), cap.getAttributes());
                }
                for (Requirement req : resource.getRequirements(null)) {
                    writeClause(writer, REQUIREMENT, req.getNamespace(), req.getDirectives(), req.getAttributes());
                }
                writer.writeEndElement();
            }
            writer.writeEndDocument();
            writer.flush();
        } finally {
            writer.close();
        }
    }