InternalIdeaJavaLanguageSettings (final IonReader reader, ReadContext context) { IonType ionType = reader.next(); assertFieldName(reader, "javaLanguageSettings"); if (ionType == IonType.NULL || ionType == null) { return null; } reader.stepIn(); InternalIdeaJavaLanguageSettings dependency = context.languageSettingsMap .computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new SimpleObjectFactory<InternalIdeaJavaLanguageSettings>() { @Override public InternalIdeaJavaLanguageSettings create() { InternalIdeaJavaLanguageSettings languageSettings = new InternalIdeaJavaLanguageSettings(); String languageLevel = readString(reader, "languageLevel"); if (languageLevel != null) { languageSettings.setLanguageLevel(JavaVersion.valueOf(languageLevel)); } String bytecodeVersion = readString(reader, "targetBytecodeVersion"); if (bytecodeVersion != null) { languageSettings.setTargetBytecodeVersion(JavaVersion.valueOf(bytecodeVersion)); } languageSettings.setJdk(readJdk(reader)); return languageSettings; } }); reader.stepOut(); return dependency; }