mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
Replace the TypeScript/JavaScript-biased analysis pipeline with a truly language-agnostic system. The core architecture was already language-neutral (graph schema, dashboard, search) — the bias lived in agent prompts, tree-sitter plugin, and language-lesson system. Core changes: - LanguageConfig + FrameworkConfig types with Zod validation - LanguageRegistry (12 languages) and FrameworkRegistry (10 frameworks) - Config-driven TreeSitterPlugin replacing hardcoded TS/JS grammars - PluginRegistry now delegates to LanguageRegistry for extension mapping - Language-lesson system uses config for display names and concepts Prompt system: - SKILL.md generalized: dynamic injection of language snippets and framework addendums instead of hardcoded if/else conditionals - 12 language prompt snippets (languages/*.md) with concepts, patterns, frameworks per language - 10 framework addendums (frameworks/*.md) with canonical file roles, edge patterns, architectural layers — Django/FastAPI/Flask preserved and split, plus React/Next.js/Express/Vue/Spring/Rails/Gin added - Extended entry points, directory patterns, and test patterns across all 12 language ecosystems in base prompts
2.4 KiB
2.4 KiB
Java Language Prompt Snippet
Key Concepts
- Generics (with Erasure): Parameterized types erased at runtime; compile-time safety only
- Annotations: Metadata markers (
@Override,@Autowired) processed at compile or runtime - Interfaces and Abstract Classes: Contracts with default methods (Java 8+) and partial implementations
- Streams API: Functional-style pipeline operations on collections (filter, map, reduce)
- Lambdas: Concise anonymous function syntax for functional interfaces
- Sealed Classes: Restricted class hierarchies with explicit permitted subclasses (Java 17+)
- Records: Immutable data carriers with auto-generated accessors, equals, hashCode (Java 16+)
- Dependency Injection: IoC pattern central to Spring; constructor, field, or method injection
- Checked vs Unchecked Exceptions: Checked must be declared or caught; unchecked extend RuntimeException
- Optional: Container for nullable values encouraging explicit handling over null checks
Import Patterns
import package.Class— import a specific classimport package.*— wildcard import of all classes in a packageimport static package.Class.method— static import for direct method/constant access
File Patterns
src/main/java/— source root following Maven/Gradle standard layoutsrc/test/java/— test source root with matching package structurepom.xml— Maven project configuration and dependency managementbuild.gradle— Gradle build script (Groovy or Kotlin DSL)Application.java— Spring Boot entry point with@SpringBootApplication
Common Frameworks
- Spring Boot — Opinionated framework for production-ready Spring applications
- Jakarta EE — Enterprise Java standards (formerly Java EE) for server-side development
- Quarkus — Cloud-native framework optimized for GraalVM and containers
- Micronaut — Compile-time DI framework for microservices and serverless
- Hibernate — ORM framework implementing JPA specification
Example Language Notes
Uses
@Autowiredannotation for constructor injection, following Spring IoC container pattern. Constructor injection is preferred over field injection because it makes dependencies explicit and enables immutability.The Maven standard directory layout (
src/main/java,src/test/java) is a strong convention — most build tools and IDEs expect this structure by default.