Skip to content

[🧬 Duplicate Code Report 🔍] Duplicate Code: Response Map Building Pattern in SecurityDependencyDemoController #115

@github-actions

Description

@github-actions

Análisis del commit b16c75a

Assignee: @copilot

Summary

Los tres métodos handler de SecurityDependencyDemoController construyen un LinkedHashMap<String, Object> de respuesta con la misma estructura repetida, lo que constituye una duplicación estructural clara.

Duplication Details

Pattern: Construcción duplicada de mapa de respuesta

  • Severity: Medium

  • Occurrences: 3

  • Locations:

    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 24-29)
    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 38-43)
    • src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (lines 48-53)
  • Code Sample:

// Repetido 3 veces con variaciones menores:
Map<String, Object> response = new LinkedHashMap<>();
response.put("mode", "...");
response.put("dependency", "...");
response.put("entries/input/resolved", ...);
return response;

Impact Analysis

  • Maintainability: Añadir un campo nuevo (ej. timestamp) obliga a modificar los tres métodos por separado.
  • Bug Risk: Un error en la estructura de respuesta podría corregirse solo en algunos métodos, generando inconsistencias.
  • Code Bloat: ~15 líneas repetidas en un solo archivo.

Refactoring Recommendations

  1. Extraer método helper privado

    private Map<String, Object> buildResponse(String mode, String dependency, String key, Object value) {
        Map<String, Object> response = new LinkedHashMap<>();
        response.put("mode", mode);
        response.put("dependency", dependency);
        response.put(key, value);
        return response;
    }
    • Estimated effort: 30 min
    • Benefits: Un único punto de modificación, respuestas consistentes
  2. Usar un record/DTO de respuesta

    • Crear DemoResponse record con campos mode, dependency, data
    • Estimated effort: 1h
    • Benefits: Tipado fuerte, serialización automática

Implementation Checklist

  • Revisar los hallazgos de duplicación
  • Elegir estrategia de refactoring (helper method o DTO)
  • Implementar los cambios en SecurityDependencyDemoController
  • Verificar que los tres endpoints devuelven la misma estructura
  • Comprobar que no se rompe la funcionalidad existente

Analysis Metadata

  • Analyzed Files: 6 (controllers, services, models — excluidos test y workflow files)
  • Detection Method: Semantic code analysis
  • Commit: b16c75a
  • Analysis Date: 2026-06-18T13:28:00Z

Generated by Duplicate Code Detector · sonnet46 734.6K ·

Add this agentic workflows to your repo

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/duplicate-code-detector.md@298f992955146a6731d380a9de808e17861708e5
  • expires on Jun 20, 2026, 1:31 PM UTC

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions