@Override @SuppressWarnings("unchecked") public <V extends BValue> V getEmptyValue() { return (V) new BByte((byte) 0); }
private static void setParam(PreparedStatement stmt, BValue value, BType bType, int index, boolean isKey) throws SQLException { int type = bType.getTag(); switch (type) { case TypeTags.INT_TAG: stmt.setLong(index, ((BInteger) value).intValue()); break; case TypeTags.STRING_TAG: stmt.setString(index, value.stringValue()); break; case TypeTags.FLOAT_TAG: stmt.setDouble(index, ((BFloat) value).floatValue()); break; case TypeTags.BOOLEAN_TAG: stmt.setBoolean(index, ((BBoolean) value).booleanValue()); break; case TypeTags.BYTE_TAG: stmt.setByte(index, ((BByte) value).byteValue()); break; default: if (isKey && value instanceof BMap) { stmt.setString(index, sortBMap(((BMap) value).getMap())); } else { stmt.setString(index, value.toString()); } } }
@Override public BigDecimal decimalValue() { return new BigDecimal(stringValue(), MathContext.DECIMAL128); }
byteValues = (byte[]) newArrayInstance(Byte.TYPE); for (int i = 0; i < this.size(); i++) { byteValues[i] = ((BByte) arrayValues[i]).value();
@Override @SuppressWarnings("unchecked") public <V extends BValue> V getZeroValue() { return (V) new BByte((byte) 0); }
public static void copyArgValueForWorkerReceive(StackFrame currentSF, int regIndex, BType paramType, BRefType passedInValue) { switch (paramType.getTag()) { case TypeTags.INT_TAG: currentSF.longRegs[regIndex] = ((BInteger) passedInValue).intValue(); break; case TypeTags.BYTE_TAG: currentSF.intRegs[regIndex] = ((BByte) passedInValue).byteValue(); break; case TypeTags.FLOAT_TAG: currentSF.doubleRegs[regIndex] = ((BFloat) passedInValue).floatValue(); break; case TypeTags.STRING_TAG: currentSF.stringRegs[regIndex] = (passedInValue).stringValue(); break; case TypeTags.BOOLEAN_TAG: currentSF.intRegs[regIndex] = (((BBoolean) passedInValue).booleanValue()) ? 1 : 0; break; default: currentSF.refRegs[regIndex] = passedInValue; } }
private static BValue getValue(ResultSet resultSet, BType bType) throws SQLException { int type = bType.getTag(); switch (type) { case TypeTags.INT_TAG: return new BInteger(resultSet.getLong(2)); case TypeTags.STRING_TAG: return new BString(resultSet.getString(2)); case TypeTags.BYTE_TAG: return new BByte(resultSet.getByte(2)); case TypeTags.FLOAT_TAG: return new BFloat(resultSet.getDouble(2)); case TypeTags.BOOLEAN_TAG: return new BBoolean(resultSet.getBoolean(2)); case TypeTags.XML_TAG: return XMLUtils.parse(resultSet.getString(2)); case TypeTags.JSON_TAG: return JsonParser.parse(resultSet.getString(2)); default: throw new BallerinaException("unsupported data type " + type + ", for channel data"); } }
break; data.intRegs[regIndex] = ((BByte) val).byteValue(); break; case TypeTags.FLOAT_TAG:
break; result.intRegs[intRegCount++] = ((BByte) vals[i]).byteValue(); break; case TypeTags.FLOAT_TAG:
private static BRefType extractValue(StackFrame data, BType type, int reg) { BRefType result; switch (type.getTag()) { case TypeTags.INT_TAG: result = new BInteger(data.longRegs[reg]); break; case TypeTags.BYTE_TAG: result = new BByte((byte) data.intRegs[reg]); break; case TypeTags.FLOAT_TAG: result = new BFloat(data.doubleRegs[reg]); break; case TypeTags.STRING_TAG: result = new BString(data.stringRegs[reg]); break; case TypeTags.BOOLEAN_TAG: result = new BBoolean(data.intRegs[reg] > 0); break; default: result = data.refRegs[reg]; } return result; }
sf.intRegs[intIndex] = ((BByte) closure.value()).byteValue(); newArgRegs[argRegIndex++] = intIndex++; break;
break; case TypeTags.BYTE_TAG: returnValues[i] = new BByte((byte) data.intRegs[retRegs[i]]); break; case TypeTags.FLOAT_TAG:
j = operands[1]; if (isByteLiteral(sf.longRegs[i])) { sf.refRegs[j] = new BByte((byte) sf.longRegs[i]); } else { handleTypeConversionError(ctx, sf, j, TypeConstants.INT_TNAME, TypeConstants.BYTE_TNAME);
private static void convertValueTypes(Strand strand, StackFrame sf, int resultRegIndex, TypeRefCPEntry typeRefCPEntry, BRefType bRefTypeValue, int targetTag) { switch (targetTag) { case TypeTags.INT_TAG: sf.refRegs[resultRegIndex] = new BInteger(((BValueType) bRefTypeValue).intValue()); break; case TypeTags.FLOAT_TAG: sf.refRegs[resultRegIndex] = new BFloat(((BValueType) bRefTypeValue).floatValue()); break; case TypeTags.DECIMAL_TAG: sf.refRegs[resultRegIndex] = new BDecimal(((BValueType) bRefTypeValue).decimalValue()); break; case TypeTags.STRING_TAG: sf.refRegs[resultRegIndex] = new BString(bRefTypeValue.toString()); break; case TypeTags.BOOLEAN_TAG: sf.refRegs[resultRegIndex] = new BBoolean(((BValueType) bRefTypeValue).booleanValue()); break; case TypeTags.BYTE_TAG: sf.refRegs[resultRegIndex] = new BByte(((BValueType) bRefTypeValue).byteValue()); break; default: handleTypeConversionError(strand, sf, resultRegIndex, bRefTypeValue.getType(), typeRefCPEntry.getType()); } }
refValues[i] = new BByte(byteValues[i]);
public static BRefType<?> execListGetOperation(BNewArray array, long index) { if (array.getType().getTag() != TypeTags.ARRAY_TAG) { BValueArray bRefValueArray = (BValueArray) array; return bRefValueArray.getRefValue(index); } switch (((BArrayType) array.getType()).getElementType().getTag()) { case TypeTags.BOOLEAN_TAG: BValueArray bBooleanArray = (BValueArray) array; int i = bBooleanArray.getBoolean(index); return i == 0 ? new BBoolean(false) : new BBoolean(true); case TypeTags.BYTE_TAG: BValueArray bByteArray = (BValueArray) array; return new BByte(bByteArray.getByte(index)); case TypeTags.FLOAT_TAG: BValueArray bFloatArray = (BValueArray) array; return new BFloat(bFloatArray.getFloat(index)); case TypeTags.DECIMAL_TAG: BValueArray bDecimalArray = (BValueArray) array; return new BDecimal(new BigDecimal(bDecimalArray.getRefValue(index).stringValue())); case TypeTags.INT_TAG: BValueArray bIntArray = (BValueArray) array; return new BInteger(bIntArray.getInt(index)); case TypeTags.STRING_TAG: BValueArray bStringArray = (BValueArray) array; return new BString(bStringArray.getString(index)); default: BValueArray bRefValueArray = (BValueArray) array; return bRefValueArray.getRefValue(index); } }
private static BValue getDefaultValue(BType type, DefaultValue value) { switch (type.getTag()) { case TypeTags.INT_TAG: return new BInteger(value.getIntValue()); case TypeTags.STRING_TAG: return new BString(value.getStringValue()); case TypeTags.FLOAT_TAG: return new BFloat(value.getFloatValue()); case TypeTags.DECIMAL_TAG: return new BDecimal(value.getDecimalValue()); case TypeTags.BOOLEAN_TAG: return new BBoolean(value.getBooleanValue()); case TypeTags.BYTE_TAG: return new BByte(value.getByteValue()); default: //shouldn't reach here throw new BLangUsageException("unsupported type specified as defaultable param: " + type); } }
private static BValue populateReturnData(StrandCallback strandCallback, CallableUnitInfo callableUnitInfo) { BValue returnValue; BType retType = callableUnitInfo.getRetParamTypes()[0]; //TODO this should have single type instead of an array switch (retType.getTag()) { case TypeTags.INT_TAG: returnValue = new BInteger(strandCallback.getIntRetVal()); break; case TypeTags.BYTE_TAG: returnValue = new BByte((byte) strandCallback.getByteRetVal()); break; case TypeTags.FLOAT_TAG: returnValue = new BFloat(strandCallback.getFloatRetVal()); break; case TypeTags.STRING_TAG: returnValue = new BString(strandCallback.getStringRetVal()); break; case TypeTags.BOOLEAN_TAG: boolean boolValue = strandCallback.getBooleanRetVal() == 1; returnValue = new BBoolean(boolValue); break; default: returnValue = strandCallback.getRefRetVal(); break; } return returnValue; }