class SinkFactoryImpl implements OutputSinkFactory {
	private String decompile;

	@Override
	public List<SinkClass> getSupportedSinks(SinkType sinkType, Collection<SinkClass> collection) {
		return Arrays.asList(SinkClass.values());
	}

	@Override
	public <T> Sink<T> getSink(SinkType sinkType, SinkClass sinkClass) {<FILL_FUNCTION_BODY>}

	private <T> void setDecompilation(T value) {
		decompile = value.toString();
	}

	/**
	 * @return Decompiled class content.
	 */
	public String getDecompilation() {
		return decompile;
	}
}

		switch(sinkType) {
			case JAVA:
				return this::setDecompilation;
			case EXCEPTION:
				return t -> error("CFR: {}", t);
			case SUMMARY:
			case PROGRESS:
			default:
				return t -> {};
		}
	
<no_super_class>