package com.perforce.cvs.parser.rcstypes; import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.Iterator; public class RcsObjectBlock implements Iterable<ByteArrayOutputStream> { private ArrayList<ByteArrayOutputStream> lines = new ArrayList<ByteArrayOutputStream>(); public RcsObjectBlock() { } public RcsObjectBlock(RcsObjectBlock block) { lines.addAll(block.getLines()); } public int size() { return lines.size(); } public void add(ByteArrayOutputStream line) { lines.add(line); } public void insert(int line, RcsObjectBlock block) { lines.addAll(line, block.getLines()); } public void remove(int line, int count) { while (count > 0) { lines.remove(line - 1); count--; } } public void clean() { ArrayList<ByteArrayOutputStream> clean = new ArrayList<ByteArrayOutputStream>(); for (ByteArrayOutputStream line : lines) { if (line != null) { clean.add(line); } } lines = clean; } public String toString() { StringBuffer sb = new StringBuffer("\n"); int sum = 0; for (ByteArrayOutputStream line : lines) { if (line != null) { sum += line.size(); } } sb.append("total[" + lines.size() + "] " + sum + "\n"); return sb.toString(); } public ArrayList<ByteArrayOutputStream> getLines() { return lines; } @Override public Iterator<ByteArrayOutputStream> iterator() { return lines.iterator(); } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10825 | Paul Allen | Branching using paul_allen.p4convert | ||
//guest/perforce_software/p4convert/src/com/perforce/cvs/parser/rcstypes/RcsObjectBlock.java | |||||
#3 | 10653 | Paul Allen | Debugging data for low level byte operations. | ||
#2 | 10497 | Paul Allen |
New low-level RCS reader using a byte[] to manage CVS lines. Designed to help with the processing of BINARY data in RCS files. The line reading code still looks for a unix style '\n', but has a MAX LINE (hard coded to 10K). The RcsObjectBlock uses a ByteArrayOutputStream to store lines and parsers uses byte logic. (passes basic cvs/svn unit tests) |
||
#1 | 9807 | Paul Allen | Initial import of p4-convert (from change 894340) |