protected boolean shouldScanFile()

in doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/dotnet/KafkaScanner.java [103:133]


    protected boolean shouldScanFile(Path file) {
        // Skip test files unless they contain Kafka patterns
        String filePath = file.toString();
        boolean isTestFile = filePath.contains("/test/") || filePath.contains("\\test\\") ||
                           filePath.contains("/Test/") || filePath.contains("\\Test\\") ||
                           filePath.contains(".Tests/") || filePath.contains(".Tests\\");

        try {
            String content = readFileContent(file);

            // Check for Kafka imports and patterns
            boolean hasKafkaPatterns = content.contains("using Confluent.Kafka") ||
                                      content.contains("IConsumer<") ||
                                      content.contains("IProducer<") ||
                                      content.contains("[KafkaConsumer") ||
                                      content.contains("[Topic") ||
                                      content.contains("ProduceAsync") ||
                                      content.contains(".Consume(");

            // For test files, require Kafka patterns
            // For non-test files, allow if they have Kafka patterns
            if (isTestFile) {
                return hasKafkaPatterns;
            }

            return hasKafkaPatterns;
        } catch (IOException e) {
            log.debug("Failed to read file for pre-filtering: {}", file);
            return false;
        }
    }