1 package com.quadcap.sql; 2 3 40 41 import java.io.Externalizable ; 42 import java.io.IOException ; 43 import java.io.ObjectInput ; 44 import java.io.ObjectOutput ; 45 46 import java.util.Vector ; 47 48 import java.sql.ResultSetMetaData ; 49 import java.sql.SQLException ; 50 51 import com.quadcap.sql.types.Value; 52 53 import com.quadcap.util.Debug; 54 55 60 public class NotNullConstraint extends Constraint implements Externalizable { 61 public NotNullConstraint() {} 62 63 public NotNullConstraint(String name) { 64 super(name); 65 } 66 67 public NotNullConstraint(String name, Vector names) { 68 super(name, names); 69 } 70 71 public void add(Session session) { 72 } 73 74 public void checkInsert(Session session, Row row) 75 throws SQLException , IOException 76 { 77 int[] cols = getColumns(); 78 for (int i = 0; i < cols.length; i++) { 79 int col = cols[i]; 80 if (Value.isNull(row.item(col))) { 81 throw new SQLException ( 82 "Not null constraint violated, column " + 83 table.getColumn(col).getShortName() + " in table " + 84 table.getName(), 85 "23000"); 86 } 87 } 88 } 89 90 public void applyInsert(Session session, Row row, long rowId, 91 Constraint activeIndex) 92 throws SQLException , IOException 93 { 94 } 95 96 public void checkUpdate(Session session, byte[] oldKey, Row row, 97 Row oldRow, long rowId, Constraint activeIndex) 98 throws SQLException , IOException 99 { 100 checkInsert(session, row); 101 } 102 103 public void applyUpdate(Session session, byte[] oldKey, Row row, 104 Row oldRow, long rowId, Constraint activeIndex) 105 throws SQLException , IOException 106 { 107 } 108 109 public void checkDelete(Session session, Row row, long rowId) 110 throws SQLException , IOException 111 { 112 } 113 114 public void applyDelete(Session session, Row row, long rowId, 115 Constraint activeIndex) 116 throws SQLException , IOException 117 { 118 } 119 120 public void delete(Session session) {} 121 122 public void readExternal(ObjectInput in) 123 throws IOException , ClassNotFoundException 124 { 125 super.readExternal(in); 126 } 127 128 public void writeExternal(ObjectOutput out) throws IOException { 129 super.writeExternal(out); 130 } 131 132 public void setTable(Table t) throws SQLException { 133 super.setTable(t); 134 int[] cols = getColumns(); 135 final int notnull = ResultSetMetaData.columnNoNulls; 136 for (int i = 0; i < cols.length; i++) { 137 t.getColumn(cols[i]).setNullable(notnull); 138 } 139 } 140 } 141 | Popular Tags |