Files
HRMS/hrmsEjb/jxl/biff/formula/StringValue.java
2025-07-28 13:56:49 +05:30

51 lines
1.3 KiB
Java

package jxl.biff.formula;
import common.Logger;
import jxl.WorkbookSettings;
import jxl.biff.IntegerHelper;
import jxl.biff.StringHelper;
class StringValue extends Operand implements ParsedThing {
private static final Logger logger = Logger.getLogger(StringValue.class);
private String value;
private WorkbookSettings settings;
public StringValue(WorkbookSettings ws) {
this.settings = ws;
}
public StringValue(String s) {
this.value = s;
}
public int read(byte[] data, int pos) {
int length = IntegerHelper.getInt(data[pos], data[pos + 1]);
int consumed = 2;
if ((data[pos + 1] & 0x1) == 0) {
this.value = StringHelper.getString(data, length, pos + 2, this.settings);
consumed += length;
} else {
this.value = StringHelper.getUnicodeString(data, length, pos + 2);
consumed += length * 2;
}
return consumed;
}
byte[] getBytes() {
byte[] data = new byte[this.value.length() * 2 + 3];
data[0] = Token.STRING.getCode();
data[1] = (byte)this.value.length();
data[2] = 1;
StringHelper.getUnicodeBytes(this.value, data, 3);
return data;
}
public void getString(StringBuffer buf) {
buf.append("\"");
buf.append(this.value);
buf.append("\"");
}
}