001package org.jsoup.parser; 002 003import java.util.ArrayList; 004 005/** 006 * A container for ParseErrors. 007 * 008 * @author Jonathan Hedley 009 */ 010public class ParseErrorList extends ArrayList<ParseError>{ 011 private static final int INITIAL_CAPACITY = 16; 012 private final int initialCapacity; 013 private final int maxSize; 014 015 ParseErrorList(int initialCapacity, int maxSize) { 016 super(initialCapacity); 017 this.initialCapacity = initialCapacity; 018 this.maxSize = maxSize; 019 } 020 021 /** 022 Create a new ParseErrorList with the same settings, but no errors in the list 023 @param copy initial and max size details to copy 024 */ 025 ParseErrorList(ParseErrorList copy) { 026 this(copy.initialCapacity, copy.maxSize); 027 } 028 029 boolean canAddError() { 030 return size() < maxSize; 031 } 032 033 int getMaxSize() { 034 return maxSize; 035 } 036 037 public static ParseErrorList noTracking() { 038 return new ParseErrorList(0, 0); 039 } 040 041 public static ParseErrorList tracking(int maxSize) { 042 return new ParseErrorList(INITIAL_CAPACITY, maxSize); 043 } 044 045 @Override 046 public Object clone() { 047 // all class fields are primitive, so native clone is enough. 048 return super.clone(); 049 } 050}