class StructContextDecorator extends StructContext {
	/**
	 * Constructs a StructContext.
	 *
	 * @param saver
	 * 		Result saver <i>(Unused/noop)</i>
	 * @param data
	 * 		Data instance, should be an instance of
	 *        {@link me.coley.recaf.decompile.fernflower.FernFlowerAccessor}.
	 * @param loader
	 * 		LazyLoader to hold links to class resources.
	 */
	public StructContextDecorator(IResultSaver saver, IDecompiledData data, LazyLoader loader) {
		super(saver, data, loader);
	}

	/**
	 * @param workspace
	 * 		Recaf workspace to pull classes from.
	 *
	 * @throws IOException
	 * 		Thrown if a class cannot be read.
	 * @throws IndexOutOfBoundsException
	 * 		Thrown if FernFlower can't read the class.
	 * 		<i>(IE: It fails on newer Java class files)</i>
	 */
	public void addWorkspace(Workspace workspace) throws IOException {
		// Add primary resource classes
		addResource(workspace.getPrimary());
		for (JavaResource resource : workspace.getLibraries())
			addResource(resource);
	}

	private void addResource(JavaResource resource) throws IOException {<FILL_FUNCTION_BODY>}
}

		// Iterate resource class entries
		for (Map.Entry<String, byte[]> entry : copySet(resource.getClasses().entrySet())) {
			String name = entry.getKey();
			String simpleName = name.substring(name.lastIndexOf('/') + 1);
			byte[] code = entry.getValue();
			addData(name, simpleName, code, true);
		}
	
<no_super_class>