1 19 package org.apache.cayenne.access.types; 20 21 import java.sql.CallableStatement ; 22 import java.sql.PreparedStatement ; 23 import java.sql.ResultSet ; 24 25 import org.apache.cayenne.map.DbAttribute; 26 import org.apache.cayenne.validation.ValidationResult; 27 28 34 abstract class ExtendedTypeDecorator implements ExtendedType { 35 36 private ExtendedType decorated; 37 38 ExtendedTypeDecorator(ExtendedType decorated) { 39 this.decorated = decorated; 40 } 41 42 abstract Object toJavaObject(Object object); 43 44 abstract Object fromJavaObject(Object object); 45 46 public abstract String getClassName(); 47 48 public Object materializeObject(CallableStatement rs, int index, int type) 49 throws Exception { 50 return toJavaObject(decorated.materializeObject(rs, index, type)); 51 } 52 53 public Object materializeObject(ResultSet rs, int index, int type) throws Exception { 54 return toJavaObject(decorated.materializeObject(rs, index, type)); 55 } 56 57 public void setJdbcObject( 58 PreparedStatement statement, 59 Object value, 60 int pos, 61 int type, 62 int precision) throws Exception { 63 decorated.setJdbcObject(statement, fromJavaObject(value), pos, type, precision); 64 } 65 66 69 public boolean validateProperty( 70 Object source, 71 String property, 72 Object value, 73 DbAttribute dbAttribute, 74 ValidationResult validationResult) { 75 76 return decorated.validateProperty( 77 source, 78 property, 79 value, 80 dbAttribute, 81 validationResult); 82 } 83 } 84 | Popular Tags |