content: package com.zzzmode.apkeditor.axmleditor.decode;
  
  import java.io.IOException;
  
  public class BNSNode extends BXMLNode {
  	private final int TAG_START = 0x00100100;
  	private final int TAG_END   = 0x00100101;
  	
  	private int mPrefix;
  	private int mUri;
  	
  	public void checkStartTag(int tag) throws IOException{
  		checkTag(TAG_START, tag);
  	}
  	
  	public void checkEndTag(int tag) throws IOException{
  		checkTag(TAG_END, tag);
  	}
  	
  	@SuppressWarnings("unused")
  	public void readStart(IntReader reader) throws IOException{
  		super.readStart(reader);
  		
  		int ffffx0 = reader.readInt(); //unused int value(0xFFFF)
  		mPrefix = reader.readInt();
  		mUri = reader.readInt();
  	}
  	
  	@SuppressWarnings("unused")
  	public void readEnd(IntReader reader) throws IOException{
  		super.readEnd(reader);
  		
  		int ffffx0 =  reader.readInt();//skip unused value
  		int prefix = reader.readInt();
  		int uri = reader.readInt();
  		
  		if((prefix != mPrefix) || (uri != mUri) ){
  			throw new IOException("Invalid end element");
  		}
  	}
  	
  	public void prepare(){
  		//TODO line number
  	}
  	
  	public void writeStart(IntWriter writer) throws IOException{
  		writer.writeInt(TAG_START);
  		super.writeStart(writer);
  		
  		writer.writeInt(0xFFFFFFFF);
  		writer.writeInt(mPrefix);
  		writer.writeInt(mUri);
  	}
  	
  	public void writeEnd(IntWriter writer) throws IOException{
  		writer.writeInt(TAG_END);
  		super.writeEnd(writer);
  		
  		writer.writeInt(0xFFFFFFFF);
  		writer.writeInt(mPrefix);
  		writer.writeInt(mUri);
  	}
  	
  	public int getPrefix(){
  		return mPrefix;
  	}
  	
  	public int getUri(){
  		return mUri;
  	}
  
  	@Override
  	public void accept(IVisitor v) {
  		v.visit(this);
  	}
  }
  