@MJI public int read___3BII__I( MJIEnv env, int this_ptr, int data_array, int start, int len, FeatureExpr ctx) { int i = 0; long current_posn = env.getLongField(this_ptr, current_position).getValue(); long current_len = env.getLongField(this_ptr, current_length).getValue(); while (i < len && current_posn < current_len) { env.setByteArrayElement( ctx, data_array, start + i, new One<>(readByte____B(env, this_ptr, ctx))); i += 1; current_posn += 1; } if (i == 0) { return -1; } return i; }
@MJI public int encode___3CII___3B( MJIEnv env, int clsObjRef, int cref, int off, int len, FeatureExpr ctx) { int bref = env.newByteArray(len); for (int i = 0, j = off; i < len; i++, j++) { env.setByteArrayElement( ctx, bref, i, env.getCharArrayElement(cref, j) .map( new Function<Character, Byte>() { @Override public Byte apply(Character c) { return (byte) c.charValue(); } })); } return bref; }