DEV Community

Query Filter
Query Filter

Posted on

bridge95

private void generateFullSpectrumGraph() {
        // ... (Initial boilerplate from previous versions) ...

        // 1. Process Properties (No change here)
        for (PropertyValue pv : def.getPropertyValues().getPropertyValues()) {
            dot.append(renderRow(pv.getName(), extractValue(pv.getValue())));
        }

        // 2. UPDATED: Process ALL Constructor Arguments
        ConstructorArgumentValues cav = def.getConstructorArgumentValues();

        // Handle Indexed Args (e.g. index="0")
        for (Map.Entry<Integer, ConstructorArgumentValues.ValueHolder> entry : cav.getIndexedArgumentValues().entrySet()) {
            String label = "arg[" + entry.getKey() + "]";
            dot.append(renderRow("<i>" + label + "</i>", extractValue(entry.getValue().getValue())));
        }

        // Handle Generic/Typed Args (e.g. type="java.lang.String")
        // This is what was missing for eodMarkerCache!
        for (ConstructorArgumentValues.ValueHolder vh : cav.getGenericArgumentValues()) {
            String typeLabel = vh.getType() != null ? 
                vh.getType().substring(vh.getType().lastIndexOf('.') + 1) : "gen";
            dot.append(renderRow("<i>arg:" + typeLabel + "</i>", extractValue(vh.getValue())));
        }

        // ... (Rest of the graph generation) ...
    }

    private String renderRow(String key, String value) {
        return String.format("<TR><TD ALIGN=\"LEFT\">%s</TD><TD ALIGN=\"LEFT\">%s</TD></TR>", key, value);
    }
Enter fullscreen mode Exit fullscreen mode

Top comments (0)