private GCLogParser createParser()

in analysis/gc-log/src/main/java/org/eclipse/jifa/gclog/parser/GCLogParserFactory.java [115:155]


    private GCLogParser createParser(GCLogParsingMetadata metadata) {
        AbstractGCLogParser parser = null;
        if (metadata.getStyle() == PRE_UNIFIED) {
            switch (metadata.getCollector()) {
                case SERIAL:
                case PARALLEL:
                case CMS:
                case UNKNOWN:
                    parser = new PreUnifiedGenerationalGCLogParser();
                    break;
                case G1:
                    parser = new PreUnifiedG1GCLogParser();
                    break;
            }
        } else if (metadata.getStyle() == UNIFIED) {
            switch (metadata.getCollector()) {
                case SERIAL:
                case PARALLEL:
                case CMS:
                case UNKNOWN:
                    parser = new UnifiedGenerationalGCLogParser();
                    break;
                case G1:
                    parser = new UnifiedG1GCLogParser();
                    break;
                case ZGC:
                    parser = new UnifiedZGCLogParser();
                    break;
                case SHENANDOAH:
                case GENSHEN:
                case GENZ:
                case EPSILON:
                    throw new CommonException("GC type not supported: " + metadata.getCollector().getName());
            }
        }
        if (parser == null) {
            throw new CommonException("Can not recognize file format. Please check if the file is a gc log.");
        }
        parser.setMetadata(metadata);
        return parser;
    }