package com.github.nukc.plugin.axml.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);
}
}