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;
}