1 package org.bsf.smartValueObject.container; 2 3 import java.util.Iterator; 4 5 /** 6 * Track changes in container objects. 7 */ 8 public interface SmartContainer { 9 /** 10 * Number of elements (not counting deleted ones). 11 * @return number of existing elements. 12 */ 13 int size(); 14 15 /** 16 * Number of elements which have been deleted. 17 * @return number of deleted elements. 18 */ 19 int getDeleted(); 20 21 /** 22 * Number of elements which have been created. 23 * @return number of created elements. 24 */ 25 int getCreated(); 26 27 /** 28 * Gets the backing container containing all elements. 29 * @return the underlying container. 30 */ 31 Object getContainer(); 32 33 /** 34 * Gets the backing iterator for all elements. 35 * @return the underlying iterator. 36 */ 37 Iterator getIterator(); 38 } 39