@Override public String toString() { return getMode() + " " + getParameterType() + " " + getName() + " AS " + getDataType(); }
@Override public int getSizeInRCode() { int size = 24; for (IParameter p : parameters) { size += ((MethodParameterV11) p).getSizeInRCode(); } return size; }
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); }
public static IMethodElement fromDebugSegment(String name, Set<AccessType> accessType, byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int flags = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int returnType = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int paramCount = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int extent = ByteBuffer.wrap(segment, currentPos + 8, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 12, Integer.BYTES).order(ByteOrder.LITTLE_ENDIAN).getInt(); String name2 = nameOffset == 0 ? name : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); int typeNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order( ByteOrder.LITTLE_ENDIAN).getInt(); String typeName = typeNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + typeNameOffset); int currPos = currentPos + 24; IParameter[] parameters = new IParameter[paramCount]; for (int zz = 0; zz < paramCount; zz++) { IParameter param = MethodParameterV11.fromDebugSegment(segment, currPos, textAreaOffset, order); currPos += param.getSizeInRCode(); parameters[zz] = param; } return new MethodElementV11(name2, accessType, flags, returnType, typeName, extent, parameters); }
@Override public String getDataType() { if (dataType == DataType.CLASS.getNum()) return dataTypeName; return getABLDataType().name(); }
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); }
public static IMethodElement fromDebugSegment(String name, Set<AccessType> accessType, byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int flags = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int returnType = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int paramCount = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int extent = ByteBuffer.wrap(segment, currentPos + 8, Short.BYTES).order(ByteOrder.LITTLE_ENDIAN).getShort(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 12, Integer.BYTES).order(ByteOrder.LITTLE_ENDIAN).getInt(); String name2 = nameOffset == 0 ? name : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); int typeNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order( ByteOrder.LITTLE_ENDIAN).getInt(); String typeName = typeNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + typeNameOffset); int currPos = currentPos + 24; IParameter[] parameters = new IParameter[paramCount]; for (int zz = 0; zz < paramCount; zz++) { IParameter param = MethodParameterV11.fromDebugSegment(segment, currPos, textAreaOffset, order); currPos += param.getSizeInRCode(); parameters[zz] = param; } return new MethodElementV11(name2, accessType, flags, returnType, typeName, extent, parameters); }
@Override public String getDataType() { if (dataType == DataType.CLASS.getNum()) return dataTypeName; return getABLDataType().name(); }
@Override public String toString() { return getMode() + " " + getParameterType() + " " + getName() + " AS " + getDataType(); }
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; } }
public static IEventElement fromDebugSegment(String name, Set<AccessType> accessType, byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int flags = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(order).getShort(); int returnType = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(order).getShort(); int parameterCount = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(order).getShort(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 12, Integer.BYTES).order(order).getInt(); String name2 = nameOffset == 0 ? name : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); int typeNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order(order).getInt(); String returnTypeName = typeNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + typeNameOffset); int delegateNameOffset = ByteBuffer.wrap(segment, currentPos + 20, Integer.BYTES).order(order).getInt(); String delegateName = delegateNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + delegateNameOffset); int currPos = currentPos + 24; IParameter[] parameters = new IParameter[parameterCount]; for (int zz = 0; zz < parameterCount; zz++) { IParameter param = MethodParameterV11.fromDebugSegment(segment, currPos, textAreaOffset, order); currPos += param.getSizeInRCode(); parameters[zz] = param; } return new EventElementV11(name2, accessType, flags, returnType, returnTypeName, delegateName, parameters); }
@Override public int getSizeInRCode() { int size = 24; for (IParameter p : parameters) { size += ((MethodParameterV11) p).getSizeInRCode(); } return size; }
@Override public int hashCode() { return (getMode() + "/" + getParameterType() + "/" + getName() + "/" + getDataType()).hashCode(); }
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; } }
public static IEventElement fromDebugSegment(String name, Set<AccessType> accessType, byte[] segment, int currentPos, int textAreaOffset, ByteOrder order) { int flags = ByteBuffer.wrap(segment, currentPos, Short.BYTES).order(order).getShort(); int returnType = ByteBuffer.wrap(segment, currentPos + 2, Short.BYTES).order(order).getShort(); int parameterCount = ByteBuffer.wrap(segment, currentPos + 4, Short.BYTES).order(order).getShort(); int nameOffset = ByteBuffer.wrap(segment, currentPos + 12, Integer.BYTES).order(order).getInt(); String name2 = nameOffset == 0 ? name : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + nameOffset); int typeNameOffset = ByteBuffer.wrap(segment, currentPos + 16, Integer.BYTES).order(order).getInt(); String returnTypeName = typeNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + typeNameOffset); int delegateNameOffset = ByteBuffer.wrap(segment, currentPos + 20, Integer.BYTES).order(order).getInt(); String delegateName = delegateNameOffset == 0 ? "" : RCodeInfo.readNullTerminatedString(segment, textAreaOffset + delegateNameOffset); int currPos = currentPos + 24; IParameter[] parameters = new IParameter[parameterCount]; for (int zz = 0; zz < parameterCount; zz++) { IParameter param = MethodParameterV11.fromDebugSegment(segment, currPos, textAreaOffset, order); currPos += param.getSizeInRCode(); parameters[zz] = param; } return new EventElementV11(name2, accessType, flags, returnType, returnTypeName, delegateName, parameters); }
@Override public int hashCode() { return (getMode() + "/" + getParameterType() + "/" + getName() + "/" + getDataType()).hashCode(); }
@Override public boolean equals(Object obj) { if (obj instanceof IParameter) { IParameter obj2 = (IParameter) obj; return getName().equals(obj2.getName()) && getMode().equals(obj2.getMode()) && getParameterType().equals(obj2.getParameterType()) && getDataType().equals(obj2.getDataType()); } return false; } }
@Override public boolean equals(Object obj) { if (obj instanceof IParameter) { IParameter obj2 = (IParameter) obj; return getName().equals(obj2.getName()) && getMode().equals(obj2.getMode()) && getParameterType().equals(obj2.getParameterType()) && getDataType().equals(obj2.getDataType()); } return false; } }