/** * Convert to lower case. */ public override StringValue toUpperCase() { int length = length(); BinaryBuilderValue string = new BinaryBuilderValue(length); byte [] srcBuffer = getBuffer(); byte [] dstBuffer = string.getBuffer(); for (int i = 0; i < length; i++) { byte ch = srcBuffer[i]; if ('a' <= ch && ch <= 'z') { dstBuffer[i] = (byte)(ch + 'A' - 'a'); } else { dstBuffer[i] = ch; } } string.setLength(length); return(string); }
/** * Returns the character at an index */ public override Value charValueAt(long index) { int len = length(); if (index < 0 || len <= index) { return(UnsetBinaryValue.UNSET); } else { return(BinaryBuilderValue.create(getBuffer()[(int)index] & 0xff)); } }
/** * Converts to a BinaryValue in desired charset. * * @param env * @param charset */ public override StringValue toBinaryValue(String charset) { try { BinaryBuilderValue result = new BinaryBuilderValue(); BinaryBuilderStream stream = new BinaryBuilderStream(result); // XXX: can use EncodingWriter directly(?) WriteStream @out = new WriteStream(stream); @out.setEncoding(charset); @out.print(_buffer, 0, _length); @out.close(); return(result); } catch (IOException e) { throw new QuercusModuleException(e.getMessage()); } }
/** * Converts to a string builder */ public StringValue ToStringBuilder(Env env, StringValue value) { if (value.isUnicode()) { UnicodeBuilderValue sb = new UnicodeBuilderValue(this); value.appendTo(sb); return(sb); } else { BinaryBuilderValue v = new BinaryBuilderValue(this); value.appendTo(v); return(v); } }
/** * Append to a binary builder. */ public override StringValue appendTo(BinaryBuilderValue sb) { return(sb.append(_value)); }
public BinaryBuilderValue(BinaryBuilderValue v) : base(v) { }
/** * Append to a string builder. */ public override StringValue appendTo(BinaryBuilderValue sb) { return(getValue().appendTo(sb)); }
/** * Append to a binary builder. */ public override StringValue appendTo(BinaryBuilderValue sb) { return(sb.appendBytes(ToString(Env.getInstance()))); }