protected static IParameter fromDebugSegment(byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int parameterType = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(order).getShort(); int paramMode = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(order).getShort(); int extent = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(order).getShort(); int dataType = ByteBuffer.wrap(segment, currentPos + 6, Short.BYTES).order(order).getShort(); int flags = ByteBuffer.wrap(segment, currentPos + 10, Short.BYTES).order(order).getShort(); int argumentNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order(order).getInt(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 20, Integer.BYTES).order(order).getInt(); String dataTypeName = argumentNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + argumentNameOffset); String name = nameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); return new MethodParameterV11(0, name, parameterType, paramMode, flags, dataType, dataTypeName, extent); }
protected static IParameter fromDebugSegment(byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int parameterType = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(order).getShort(); int paramMode = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(order).getShort(); int extent = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(order).getShort(); int dataType = ByteBuffer.wrap(segment, currentPos + 6, Short.BYTES).order(order).getShort(); int flags = ByteBuffer.wrap(segment, currentPos + 10, Short.BYTES).order(order).getShort(); int argumentNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order(order).getInt(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 20, Integer.BYTES).order(order).getInt(); String dataTypeName = argumentNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + argumentNameOffset); String name = nameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); return new MethodParameterV11(0, name, parameterType, paramMode, flags, dataType, dataTypeName, extent); }
private static final ITypeInfo getProgressLangObject() { ITypeInfo info = new TypeInfoV11(PROGRESS_LANG_OBJECT, null, null, 0); info.getMethods().add(new MethodElementV11("Clone", EnumSet.of(AccessType.PUBLIC), 0, DataType.CLASS.getNum(), PROGRESS_LANG_OBJECT, 0, EMPTY_PARAMETERS)); info.getMethods().add( new MethodElementV11("Equals", EnumSet.of(AccessType.PUBLIC), 0, DataType.LOGICAL.getNum(), "", 0, new IParameter[] { new MethodParameterV11(0, "otherObj", 2, MethodParameterV11.PARAMETER_INPUT, 0, DataType.CLASS.getNum(), PROGRESS_LANG_OBJECT, 0)})); info.getMethods().add(new MethodElementV11("GetClass", EnumSet.of(AccessType.PUBLIC), 0, DataType.CLASS.getNum(), "Progress.Lang.Class", 0, EMPTY_PARAMETERS)); info.getMethods().add(new MethodElementV11("ToString", EnumSet.of(AccessType.PUBLIC), 0, DataType.CHARACTER.getNum(), "", 0, EMPTY_PARAMETERS)); return info; } }
private static final ITypeInfo getProgressLangObject() { ITypeInfo info = new TypeInfoV11(PROGRESS_LANG_OBJECT, null, null, 0); info.getMethods().add(new MethodElementV11("Clone", EnumSet.of(AccessType.PUBLIC), 0, DataType.CLASS.getNum(), PROGRESS_LANG_OBJECT, 0, EMPTY_PARAMETERS)); info.getMethods().add( new MethodElementV11("Equals", EnumSet.of(AccessType.PUBLIC), 0, DataType.LOGICAL.getNum(), "", 0, new IParameter[] { new MethodParameterV11(0, "otherObj", 2, MethodParameterV11.PARAMETER_INPUT, 0, DataType.CLASS.getNum(), PROGRESS_LANG_OBJECT, 0)})); info.getMethods().add(new MethodElementV11("GetClass", EnumSet.of(AccessType.PUBLIC), 0, DataType.CLASS.getNum(), "Progress.Lang.Class", 0, EMPTY_PARAMETERS)); info.getMethods().add(new MethodElementV11("ToString", EnumSet.of(AccessType.PUBLIC), 0, DataType.CHARACTER.getNum(), "", 0, EMPTY_PARAMETERS)); return info; } }