protected void serializeElementWithOptions()

in impl/src/main/java/org/apache/tuscany/sdo/util/resource/XMLStreamSerializer.java [167:226]


    protected void serializeElementWithOptions(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
    	++nest;
    	boolean brk=false;
    	if(oldNest != nest){
    		if(oldNest < nest) brk = true;
    		oldNest = nest;    		
    	}
    	startElement(writer);
        String prefix = reader.getPrefix();
        String nameSpaceName = reader.getNamespaceURI();
        if (nameSpaceName != null) {
            String writer_prefix = writer.getPrefix(nameSpaceName);
            
            if (writer_prefix != null) {
                if(brk && nest != 1){
                	breakLine(writer, true, true);
                }
                else{
                	breakLine(writer, false, true);
                }

                writer.writeStartElement(nameSpaceName, reader.getLocalName());                
            } else {
                if (prefix != null) {
                    if(brk && nest == 1){
                    	breakLine(writer, false, true);
                    }                    
                    writer.writeStartElement(prefix, reader.getLocalName(), nameSpaceName);
                    writer.writeNamespace(prefix, nameSpaceName);
                    writer.setPrefix(prefix, nameSpaceName);
                } else {
                    if(brk && nest == 1){
                    	breakLine(writer, false, true);
                    }                                    	
                    writer.writeStartElement(nameSpaceName, reader.getLocalName());
                    writer.writeDefaultNamespace(nameSpaceName);
                    writer.setDefaultNamespace(nameSpaceName);
                    if(brk && nest == 1){
                    	breakLine(writer, false, true);
                    }                    
                }
            }
        } else {
            writer.writeStartElement(reader.getLocalName());
        }
 
        // add the namespaces
        int count = reader.getNamespaceCount();
        String namespacePrefix;
        for (int i = 0; i < count; i++) {
            namespacePrefix = reader.getNamespacePrefix(i);
            if (namespacePrefix != null && namespacePrefix.length() == 0)
                continue;

            serializeNamespace(namespacePrefix, reader.getNamespaceURI(i), writer);
        }

        // add attributes
        serializeAttributes(reader, writer);    	
    }