1 31 32 package org.opencms.workplace.tools.searchindex; 33 34 import java.util.Collection ; 35 import java.util.Iterator ; 36 import java.util.LinkedList ; 37 38 66 public abstract class CmsHookList extends LinkedList { 67 68 69 private Object m_peer; 70 71 79 public CmsHookList(Object peer) { 80 81 super(); 82 m_peer = peer; 83 } 84 85 94 public CmsHookList(Object peer, Collection c) { 95 96 super(c); 97 m_peer = peer; 98 } 99 100 104 public void add(int index, Object element) { 105 106 super.add(index, element); 107 onAdded(m_peer, index, element); 108 109 } 110 111 115 public boolean add(Object o) { 116 117 if (super.add(o)) { 118 this.onAdded(m_peer, o); 119 return true; 120 } 121 return false; 122 } 123 124 128 public void clear() { 129 130 onClear(m_peer); 131 super.clear(); 132 onCleared(m_peer); 133 } 134 135 139 public Object get(int index) { 140 141 Object ret = super.get(index); 142 onGetCall(m_peer, index); 143 return ret; 144 } 145 146 150 public Iterator iterator() { 151 152 Iterator it = super.iterator(); 153 onIteratorCall(m_peer); 154 return it; 155 } 156 157 161 public Object remove(int index) { 162 163 Object ret = null; 164 ret = super.remove(index); 166 return ret; 167 } 168 169 177 protected abstract void onAdded(Object peer, int index, Object element); 178 179 186 protected abstract void onAdded(Object peer, Object o); 187 188 196 protected abstract void onClear(Object peer); 197 198 206 protected abstract void onCleared(Object peer); 207 208 218 protected abstract void onGetCall(Object peer, int index); 219 220 229 protected abstract void onIteratorCall(Object peer); 230 231 240 protected abstract void onRemoved(Object peer, int index); 241 242 } 243 | Popular Tags |