Ejemplo n.º 1
0
  private void write(BXMLNode node, IntWriter writer) throws IOException {
    node.writeStart(writer);

    if (node.hasChild()) {
      for (BXMLNode child : node.getChildren()) {
        write(child, writer);
      }
    }
    node.writeEnd(writer);
  }
Ejemplo n.º 2
0
  private void prepare(BXMLNode node) {
    node.prepare();
    Pair<Integer, Integer> p = node.getSize();
    mSize += p.first + p.second;

    if (node.hasChild()) {
      for (BXMLNode child : node.getChildren()) {
        prepare(child);
      }
    }
  }
Ejemplo n.º 3
0
  public void read(IntReader reader) throws IOException {
    mRoot.checkStartTag(NS_START);
    mVisitor.push(mRoot);
    mRoot.readStart(reader);

    int chunkType;

    end:
    while (true) {
      chunkType = reader.readInt();

      switch (chunkType) {
        case NODE_START:
          {
            BTagNode node = new BTagNode();
            node.checkStartTag(NODE_START);
            BXMLNode parent = mVisitor.peek();
            parent.addChild(node);
            mVisitor.push(node);

            node.readStart(reader);
          }
          break;
        case NODE_END:
          {
            BTagNode node = (BTagNode) mVisitor.pop();
            node.checkEndTag(NODE_END);
            node.readEnd(reader);
          }
          break;
        case TEXT:
          {
            System.out.println("Hello Text");
          }
          break;
        case NS_END:
          break end;
      }
    }

    if (!mRoot.equals(mVisitor.pop())) {
      throw new IOException("doc has invalid end");
    }

    mRoot.checkEndTag(chunkType);
    mRoot.readEnd(reader);
  }