/* * Copyright (c) 2013-2015 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.model.bytecode; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_DOT; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_SLASH; import java.util.regex.Matcher; import java.util.regex.Pattern; public class InnerClassRelationship { private String parentClass; private String childClass; private static final Pattern PATTERN = Pattern.compile("^.*class (.*) of class (.*)"); private InnerClassRelationship() { } public static InnerClassRelationship parse(String line) { InnerClassRelationship result = null; Matcher matcher = PATTERN.matcher(line); if (matcher.find()) { result = new InnerClassRelationship(); result.childClass = (matcher.group(1) == null) ? null : matcher.group(1).replace(S_SLASH, S_DOT); result.parentClass = (matcher.group(2) == null) ? null : matcher.group(2).replace(S_SLASH, S_DOT); } return result; } public String getParentClass() { return parentClass; } public String getChildClass() { return childClass; } @Override public String toString() { return "InnerClassRelationship [parentClass=" + parentClass + ", childClass=" + childClass + "]"; } }