protected void appendInnerClasses(@Nonnull StringBuilder code) throws ExpressionCompileException {
		for (InnerClassInfo innerClass : innerClasses) {
			String innerClassName = innerClass.getInnerClassName();
			if (!innerClassName.startsWith(className))
				continue;
			if (innerClassName.length() <= className.length())
				continue;
			if (!isSafeClassName(innerClassName.replace('/', '.').replace('$', '.')))
				continue;
			ClassPathNode innerClassPath = workspace.findClass(innerClassName);
			if (innerClassPath != null) {
				ClassInfo innerClassInfo = innerClassPath.getValue();
				ClassStubGenerator generator = new InnerClassStubGenerator(workspace,
						innerClassInfo.getAccess(),
						innerClassInfo.getName(),
						innerClassInfo.getSuperName(),
						innerClassInfo.getInterfaces(),
						innerClassInfo.getFields(),
						innerClassInfo.getMethods(),
						innerClassInfo.getInnerClasses()
				);
				String inner = generator.generate();
				code.append('\n').append(inner).append('\n');
			}
		}
	}
@param code
		Class code to append the inner classes to.

@throws ExpressionCompileException
		When the inner classes could not be stubbed out.
recaf-core/src/main/java/software/coley/recaf/services/compile/stub/ClassStubGenerator.java