1 28 29 package com.caucho.amber.entity; 30 31 import com.caucho.amber.query.ResultSetCacheChunk; 32 import com.caucho.util.L10N; 33 import com.caucho.util.Log; 34 35 import java.util.logging.Logger ; 36 37 40 public class RowInvalidateCompletion extends AmberCompletion { 41 private static final L10N L = new L10N(RowInvalidateCompletion.class); 42 private static final Logger log = Log.open(RowInvalidateCompletion.class); 43 44 private String _table; 45 private Object _key; 46 47 public RowInvalidateCompletion(String table, Object key) 48 { 49 if (table == null || key == null) 50 throw new NullPointerException (); 51 52 _table = table; 53 _key = key; 54 } 55 56 61 public boolean complete(AmberEntityHome home, 62 Object key, 63 EntityItem entityItem) 64 { 65 if (home.getEntityType().getTable().getName().equals(_table) && 66 _key.equals(key)) { 67 entityItem.expire(); 68 } 69 else { 70 entityItem.getEntity().__caucho_invalidate_foreign(_table, key); 71 } 72 73 return false; 74 } 75 76 81 public boolean complete(ResultSetCacheChunk chunk) 82 { 83 if (chunk.invalidate(_table, _key)) { 84 chunk.invalidate(); 85 return true; 86 } 87 88 return false; 89 } 90 91 94 public boolean equals(Object o) 95 { 96 if (this == o) 97 return true; 98 else if (o == null || o.getClass() != getClass()) 99 return false; 100 101 RowInvalidateCompletion comp = (RowInvalidateCompletion) o; 102 103 return _table.equals(comp._table) && _key.equals(comp._key); 104 } 105 } 106 | Popular Tags |