1 package org.jsoup.parser; 2 3 import java.util.ArrayList; 4 5 /** 6 * A container for ParseErrors. 7 * 8 * @author Jonathan Hedley 9 */ 10 public class ParseErrorList extends ArrayList<ParseError>{ 11 private static final int INITIAL_CAPACITY = 16; 12 private final int initialCapacity; 13 private final int maxSize; 14 ParseErrorList(int initialCapacity, int maxSize)15 ParseErrorList(int initialCapacity, int maxSize) { 16 super(initialCapacity); 17 this.initialCapacity = initialCapacity; 18 this.maxSize = maxSize; 19 } 20 21 /** 22 Create a new ParseErrorList with the same settings, but no errors in the list 23 @param copy initial and max size details to copy 24 */ ParseErrorList(ParseErrorList copy)25 ParseErrorList(ParseErrorList copy) { 26 this(copy.initialCapacity, copy.maxSize); 27 } 28 canAddError()29 boolean canAddError() { 30 return size() < maxSize; 31 } 32 getMaxSize()33 int getMaxSize() { 34 return maxSize; 35 } 36 noTracking()37 public static ParseErrorList noTracking() { 38 return new ParseErrorList(0, 0); 39 } 40 tracking(int maxSize)41 public static ParseErrorList tracking(int maxSize) { 42 return new ParseErrorList(INITIAL_CAPACITY, maxSize); 43 } 44 45 @Override clone()46 public Object clone() { 47 // all class fields are primitive, so native clone is enough. 48 return super.clone(); 49 } 50 } 51