1 21 22 package org.apache.derby.catalog.types; 23 24 import org.apache.derby.iapi.services.io.StoredFormatIds; 25 import org.apache.derby.iapi.services.io.Formatable; 26 27 import org.apache.derby.iapi.types.DataValueDescriptor; 28 29 import org.apache.derby.iapi.sql.depend.ProviderInfo; 30 31 import org.apache.derby.iapi.reference.SQLState; 32 33 import org.apache.derby.catalog.DefaultInfo; 34 35 import java.io.ObjectOutput ; 36 import java.io.ObjectInput ; 37 import java.io.IOException ; 38 39 public class DefaultInfoImpl implements DefaultInfo, Formatable 40 { 41 54 55 private DataValueDescriptor defaultValue; 56 private String defaultText; 57 private int type; 58 59 final private static int BITS_MASK_IS_DEFAULTVALUE_AUTOINC = 0x1 << 0; 60 61 65 public DefaultInfoImpl() {} 66 67 72 public DefaultInfoImpl(boolean isDefaultValueAutoinc, 73 String defaultText, 74 DataValueDescriptor defaultValue) 75 { 76 this.type = calcType(isDefaultValueAutoinc); 77 this.defaultText = defaultText; 78 this.defaultValue = defaultValue; 79 } 80 81 84 public String getDefaultText() 85 { 86 return defaultText; 87 } 88 89 public String toString() 90 { 91 if(isDefaultValueAutoinc()){ 92 return "GENERATED_BY_DEFAULT"; 93 } 94 return defaultText; 95 } 96 97 99 107 public void readExternal( ObjectInput in ) 108 throws IOException , ClassNotFoundException 109 { 110 defaultText = (String ) in.readObject(); 111 defaultValue = (DataValueDescriptor) in.readObject(); 112 type = in.readInt(); 113 } 114 115 122 public void writeExternal( ObjectOutput out ) 123 throws IOException 124 { 125 out.writeObject( defaultText ); 126 out.writeObject( defaultValue ); 127 out.writeInt(type); 128 } 129 130 135 public int getTypeFormatId() { return StoredFormatIds.DEFAULT_INFO_IMPL_V01_ID; } 136 137 144 public DataValueDescriptor getDefaultValue() 145 { 146 return defaultValue; 147 } 148 149 154 public void setDefaultValue(DataValueDescriptor defaultValue) 155 { 156 this.defaultValue = defaultValue; 157 } 158 159 162 public boolean isDefaultValueAutoinc(){ 163 return (type & BITS_MASK_IS_DEFAULTVALUE_AUTOINC ) != 0; 164 } 165 166 169 private static int calcType(boolean isDefaultValueAutoinc){ 170 171 int value = 0; 172 173 if(isDefaultValueAutoinc){ 174 value |= BITS_MASK_IS_DEFAULTVALUE_AUTOINC; 175 } 176 177 return value; 178 } 179 180 } 181 | Popular Tags |