Use when when you need to understand how a Java application routes input data to processing modules based on declared data types, conditionally branches on instrument or format types (e.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add HolobiomicsLab/asb-skill-collections --skill java-source-code-inspection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Java Source Code Inspection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/holobiomicslab-java-source-code-inspection-97fa3c27)More formats (shields.io, HTML) on the badges page.
---
name: java-source-code-inspection
description: Use when when you need to understand how a Java application routes input data to processing modules based on declared data types, conditionally branches on instrument or format types (e.
license: CC-BY-4.0
metadata:
edam_operation: http://edamontology.org/operation_3096
edam_topics:
- http://edamontology.org/topic_3520
- http://edamontology.org/topic_0091
tools:
- mzmine
- JDK 25
- JavaFX 24
techniques:
- LC-MS
- GC-MS
- ion-mobility-MS
derived_from:
- doi: 10.1038/s41467-021-23953-9
title: iimn
evidence_spans:
- mzmine is an open-source software for mass spectrometry data processing
- JDK version-25-blue
- JavaFX version-24
claims: []
provenance:
collection: https://w3id.org/holobiomicslab/asb-skill/collection/metabolomics/v2
assembled_by: scripts/collect_metabolomics_collection.py
sources:
- build: coll_iimn
doi: 10.1038/s41467-021-23953-9
title: iimn
dedup_kept_from: coll_iimn
schema_version: 0.2.0
attribution:
generator: AgenticScienceBuilder
original_doi: 10.1038/s41467-021-23953-9
all_source_dois:
- 10.1038/s41467-021-23953-9
zenodo_doi: 10.5281/zenodo.20794027
curators: []
promoter: Louis-Félix Nothias
sponsor: CNRS & Université Côte d'Azur
---
# java-source-code-inspection
## Summary
A code archaeology technique for tracing control flow, data type routing, and module dispatch logic in large Java codebases by systematically locating entry points, type declarations, conditional routing logic, and synthesizing findings into control-flow diagrams or pseudocode.
## When to use
When you need to understand how a Java application routes input data to processing modules based on declared data types, conditionally branches on instrument or format types (e.g., LC vs. GC vs. IMS vs. MS Imaging), or reconstructs the architecture of modular dispatch without external documentation. Apply this skill when the research question targets the *how* of selective module invocation, not just the *what* of module capabilities.
## When NOT to use
- The Java codebase is not accessible or is closed-source; use API documentation or user guides instead.
- The goal is to use the software as an end user (e.g., process LC-MS data in mzmine's GUI); focus on the application's UI workflows and user documentation.
- The routing logic is already fully documented in JavaDoc, README, or design documents; prioritize reading existing documentation first.
## Inputs
- Java source code repository (e.g., mzmine/mzmine)
- Main entry point class or module initialization file
- Data-type declaration enum or interface (e.g., MSDataType.LC, MSDataType.GC, MSDataType.IMS)
- Module factory or dispatcher implementation (e.g., ProcessingModuleFactory, DataTypeRouter)
## Outputs
- Control-flow diagram or pseudocode describing data-type-to-module routing
- Routing decision table (input type → module → parameters)
- Conditional branching logic extracted as if/switch rules or factory mappings
- Dispatch architecture documentation (e.g., factory pattern, visitor pattern, or event-driven flow)
## How to apply
Begin by retrieving the source repository and identifying the main entry point and module initialization code. Locate the data-type declaration interface or enum that classifies input (e.g., LC, GC, IMS, MS Imaging). Trace the conditional branching logic—if/switch statements, factory patterns, or visitor implementations—that maps each data type to its corresponding processing module. Extract dispatch conditions, parameter checks, and fallback behavior by following the control-flow path for each type. Synthesize the routing logic as a control-flow diagram, pseudocode, or narrative, documenting each pathway and the criteria that trigger it. Use JavaFX or IDE debugger views to visualize module instantiation and parameter propagation.
## Related tools
- **mzmine** (Source codebase for Java source inspection; mass spectrometry data processing software with modular dispatch logic across LC, GC, IMS, and MS Imaging input types) — https://github.com/mzmine/mzmine
- **JDK 25** (Java Development Kit for compiling, running, and debugging the mzmine source code during inspection)
- **JavaFX 24** (GUI framework used by mzmine; helpful for understanding module initialization and UI-driven data type selection flows)
## Evaluation signals
- All declared input data types (LC, GC, IMS, MS Imaging) have a documented routing path to at least one processing module in the traced dispatch logic.
- Each conditional branch or factory rule maps to a concrete module class; no dead code or unreachable branches in the control-flow diagram.
- Parameter checks and fallback behavior (e.g., default module or error handling) are explicitly noted in the synthesized pseudocode or diagram.
- The traced logic accounts for most MS instruments supported by the software, as stated in the README or documentation.
- A peer review of the synthesized routing diagram against the actual source code confirms no missed branches or mischaracterized type checks.
## Limitations
- The control-flow diagram captures static dispatch logic only; runtime behavior (e.g., user preferences, plugin loading, or dynamic module registration) may not be fully captured.
- Large codebases may have scattered or implicit routing logic; if-statements in multiple files require systematic tracing to avoid missing branches.
- No changelog is available in the repository to track changes to the dispatch logic over versions, making it difficult to determine which routing rules are stable vs. experimental.
- The skill depends on readable, well-named code and clear naming conventions; obfuscated or poorly named conditionals may require additional reverse-engineering effort.
## Evidence
- [intro] mzmine supports selective processing module dispatch across liquid chromatography (LC), gas chromatography (GC), ion mobility spectrometry (IMS), and MS imaging (e.g., MALDI) data types, with coverage for most MS instruments.: "mzmine supports selective processing module dispatch across liquid chromatography (LC), gas chromatography (GC), ion mobility spectrometry (IMS), and MS imaging (e.g., MALDI) data types, with"
- [other] Trace the conditional branching logic (if/switch statements or factory pattern) that maps each data type to its corresponding processing module.: "Trace the conditional branching logic (if/switch statements or factory pattern) that maps each data type to its corresponding processing module."
- [other] Extract the dispatch conditions, parameter checks, and fallback behavior. 5. Synthesize the routing logic as a control-flow diagram or pseudocode, documenting each pathway and the criteria that trigger it.: "Extract the dispatch conditions, parameter checks, and fallback behavior. Synthesize the routing logic as a control-flow diagram or pseudocode, documenting each pathway and the criteria that trigger"
- [readme] provide a user-friendly, flexible and easily extendable software with a complete set of modules covering the entire MS data analysis workflow: "provide a user-friendly, flexible and easily extendable software with a complete set of modules covering the entire MS data analysis workflow"
- [readme] Support includes liquid chromatography (LC), gas chromatography (GC), ion mobility spectrometry (IMS), MS imaging (e.g., MALDI), and most MS instruments: "Support includes liquid chromatography (LC), gas chromatography (GC), ion mobility spectrometry (IMS), MS imaging (e.g., MALDI), and most MS instruments"
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!