InternalIdeaCompilerOutput (final IonReader reader, final ReadContext context) { IonType ionType = reader.next(); assertFieldName(reader, "compilerOutput"); if (ionType == IonType.NULL || ionType == null) { return null; } reader.stepIn(); InternalIdeaCompilerOutput project = context.compilerOutputsMap .computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new IntObjectMap.SimpleObjectFactory<InternalIdeaCompilerOutput>() { @Override public InternalIdeaCompilerOutput create() { InternalIdeaCompilerOutput compilerOutput = new InternalIdeaCompilerOutput(); compilerOutput.setInheritOutputDirs(readBoolean(reader, "inheritOutputDirs")); compilerOutput.setOutputDir(readFile(reader, "outputDir")); compilerOutput.setTestOutputDir(readFile(reader, "testOutputDir")); return compilerOutput; } }); reader.stepOut(); return project; }