Skip to content

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

@github-actions

Description

@github-actions

🔍 Duplicate Code Detected: Response Map Building Pattern

Analysis of commit b16c75a

Assignee: @copilot

Summary

Los tres métodos de SecurityDependencyDemoController repiten la misma lógica de construcción de un LinkedHashMap de respuesta: crear el mapa, insertar "mode" y "dependency", añadir datos extra y devolver el mapa.

Duplication Details

Pattern: LinkedHashMap Response Builder

  • 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:
    // Repeated in all three methods:
    Map<String, Object> response = new LinkedHashMap<>();
    response.put("mode", "...");
    response.put("dependency", "...");
    response.put("entries", data);   // or "input"/"resolved"
    return response;

Impact Analysis

  • Maintainability: Añadir o renombrar un campo común requiere modificar tres métodos por separado.
  • Bug Risk: Una corrección en el formato de respuesta podría aplicarse de forma inconsistente en los tres métodos.
  • Code Bloat: ~15 líneas de código duplicado.

Refactoring Recommendations

  1. Extraer método helper privado

    • Crear buildResponse(String mode, String dependency, Map<String, Object> extras) dentro del mismo controlador.
    • Cada método existente llama al helper y sólo define sus datos específicos.
    • Estimated effort: 30 minutos
    • Benefits: Un único punto de cambio para la estructura de respuesta.
  2. DTO de respuesta tipado

    • Crear una clase SecurityDemoResponse con los campos mode, dependency y un mapa de extras.
    • Mejora la legibilidad y la serialización.
    • Estimated effort: 1 hora

Implementation Checklist

  • Review duplication findings
  • Prioritize refactoring tasks
  • Create refactoring plan
  • Implement changes
  • Update tests
  • Verify no functionality broken

Analysis Metadata

  • Analyzed Files: 9 (source Java files, excluding tests and workflows)
  • Detection Method: Semantic code analysis
  • Commit: b16c75a
  • Analysis Date: 2026-06-12T13:27:47Z

Generated by Duplicate Code Detector · sonnet46 708.3K ·

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 14, 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