int addCharBuffer(char[] buffer, int start, int length) { String s = new String(buffer, start, length); return this.addString(s); }
int addString(String s) { return this.getStringHeap().addString(s); }
public void setStringValue(int addr, int feat, String s) { final int stringCode = ((s == null) ? NULL : this.getStringHeap().addString(s)); setFeatureValue(addr, feat, stringCode); }
private int readString() throws IOException { int length = decodeIntSign(readVnumber(strLength_dis)); if (0 == length) { return 0; } if (1 == length) { return stringHeapObj.addString(""); } if (length < 0) { // in this case, -length is the slot index return stringTableOffset - length; } int offset = readVnumber(strOffset_dis); int segmentIndex = (only1CommonString) ? 0 : readVnumber(strSeg_dis); String s = readCommonString[segmentIndex].substring(offset, offset + length - 1); return stringHeapObj.addString(s); }
void createStringTableFromArray(String[] stringTable) { // why a new heap instead of reseting the old one??? // this.stringHeap = new StringHeap(); this.getStringHeap().reset(); for (int i = 1; i < stringTable.length; i++) { this.getStringHeap().addString(stringTable[i]); } }
@Override public final void ll_setStringValue(int fsRef, int featureCode, String value) { if (null != value) { final TypeSystemImpl ts = this.svd.casMetadata.ts; String[] stringSet = ts.ll_getStringSet(ts.ll_getRangeType(featureCode)); if (stringSet != null) { final int rc = Arrays.binarySearch(stringSet, value); if (rc < 0) { // Not a legal value. CASRuntimeException e = new CASRuntimeException(CASRuntimeException.ILLEGAL_STRING_VALUE, new String[] { value, ts.ll_getTypeForCode(ts.ll_getRangeType(featureCode)).getName() }); throw e; } } } final int stringAddr = (value == null) ? NULL : this.getStringHeap().addString(value); setFeatureValue(fsRef, featureCode, stringAddr); }