@Override public String toString() { return String.format("Existing field %s does not match expected field type %s", existingField.toString(), requestedType.toString()); }
/** * Converts an array of SootFields to an array of strings * * @param fields The array of SootFields to convert * @return The array of strings corresponding to the given array of SootFields */ private String[] fieldArrayToStringArray(SootField[] fields) { if (fields == null) return null; String[] stringFields = new String[fields.length]; for (int i = 0; i < fields.length; i++) stringFields[i] = fields[i].toString(); return stringFields; }
/** * Converts an array of Soot fields into a string representation * * @param fields The array of Soot fields to convert * @return The string representation of the given Soot fields */ private String[] sootFieldsToString(SootField[] fields) { if (fields == null || fields.length == 0) return null; String[] res = new String[fields.length]; for (int i = 0; i < fields.length; i++) res[i] = fields[i].toString(); return res; }
@Override public String toString() { StringBuffer sb = new StringBuffer(); for (Local var : roots.keySet()) { sb.append(var).append(" -> "); for (AnyNewExpr node : roots.get(var)) { sb.append(node2String(node)).append(" "); } sb.append("\n"); } for (AnyNewExpr source : heap.keySet()) { for (SootField field : heap.get(source).keySet()) { sb.append(node2String(source)).append(".").append(field.isStatic() ? field.toString() : field.getName()).append(" -> "); for (AnyNewExpr target : heap.get(source).get(field)) { sb.append(node2String(target)).append(" "); } sb.append("\n"); } } return sb.toString(); }
/** * Writes the given access path into the given XML stream writer * * @param accessPath The access path to write out * @param writer The stream writer into which to write the data * @throws XMLStreamException Thrown if the XML data cannot be written */ protected void writeAccessPath(AccessPath accessPath, XMLStreamWriter writer) throws XMLStreamException { writer.writeStartElement(XmlConstants.Tags.accessPath); if (accessPath.getPlainValue() != null) writer.writeAttribute(XmlConstants.Attributes.value, accessPath.getPlainValue().toString()); if (accessPath.getBaseType() != null) writer.writeAttribute(XmlConstants.Attributes.type, accessPath.getBaseType().toString()); writer.writeAttribute(XmlConstants.Attributes.taintSubFields, accessPath.getTaintSubFields() ? XmlConstants.Values.TRUE : XmlConstants.Values.FALSE); // Write out the fields if (accessPath.getFieldCount() > 0) { writer.writeStartElement(XmlConstants.Tags.fields); for (int i = 0; i < accessPath.getFieldCount(); i++) { writer.writeStartElement(XmlConstants.Tags.field); writer.writeAttribute(XmlConstants.Attributes.value, accessPath.getFields()[i].toString()); writer.writeAttribute(XmlConstants.Attributes.type, accessPath.getFieldTypes()[i].toString()); writer.writeEndElement(); } writer.writeEndElement(); } writer.writeEndElement(); }
return ((IntegerConstantValueTag) tag).getIntValue(); else logger.error("Constant %s was of unexpected type", field.toString()); } else if (assign.getRightOp() instanceof InvokeExpr) { InvokeExpr inv = (InvokeExpr) assign.getRightOp();