1 34 package smallsql.database; 35 36 37 40 public class ExpressionFunctionRight extends ExpressionFunctionReturnP1StringAndBinary { 41 42 final int getFunction() { 43 return SQLTokenizer.RIGHT; 44 } 45 46 47 final boolean isNull() throws Exception { 48 return param1.isNull() || param2.isNull(); 49 } 50 51 52 final byte[] getBytes() throws Exception { 53 if(isNull()) return null; 54 byte[] bytes = param1.getBytes(); 55 int length = param2.getInt(); 56 if(bytes.length <= length) return bytes; 57 58 byte[] b = new byte[length]; 59 System.arraycopy(bytes, bytes.length -length, b, 0, length); 60 return b; 61 } 62 63 64 final String getString() throws Exception { 65 if(isNull()) return null; 66 String str = param1.getString(); 67 int length = param2.getInt(); 68 int start = str.length() - Math.min( length, str.length() ); 69 return str.substring(start); 70 } 71 72 73 } 74 | Popular Tags |