package openadk.library.impl.surrogates; import javax.xml.stream.XMLStreamReader; import org.apache.commons.jxpath.JXPathContext; import org.apache.commons.jxpath.ri.model.NodePointer; import openadk.library.*; import openadk.library.common.SIF_RefId; import openadk.library.reporting.ReportingDTD; import openadk.util.XMLWriter; /** * Reads or writes the SIF 1.5r1 SifEntity complex element into or from the SIF 2.x * SIF_RefId element. This is only used in the ReportSubmitterInfo object * @author Andrew Elmhorst * */ public class SifEntitySurrogate extends AbstractRenderSurrogate implements RenderSurrogate { public SifEntitySurrogate( ElementDef def ){ super( def ); } public void renderRaw(XMLWriter writer, SIFVersion version, Element o, SIFFormatter formatter) throws SIFException { SIF_RefId refIdElement = (SIF_RefId) o; writer.tab(); writer.write( "<SifEntity ObjectName=\"" ); writer.write( refIdElement.getSIF_RefObject() ); writer.write( "\" RefId=\"" ); writer.write( refIdElement.getValue() ); writer.write( "\" />\r\n" ); } public boolean readRaw(XMLStreamReader reader, SIFVersion version, SIFElement parent, SIFFormatter formatter) throws ADKParsingException { if( !reader.getLocalName().equals( "SifEntity" ) ){ return false; } SIF_RefId refIdElement = new SIF_RefId(); refIdElement.setSIF_RefObject( reader.getAttributeValue( null, "ObjectName" ) ); refIdElement.setValue( reader.getAttributeValue( null, "RefId" ) ); parent.addChild( ReportingDTD.REPORTSUBMITTERINFO_SIF_REFID, refIdElement ); super.nextTag( reader ); return true; } public NodePointer createChild(NodePointer parentPointer, SIFFormatter formatter, SIFVersion version, JXPathContext context ) { // TODO Auto-generated method stub return null; } public NodePointer createNodePointer(NodePointer parent, Element element, SIFVersion version) { // TODO Auto-generated method stub return null; } public String getPath() { return "SifEntity"; } }