InternalProjectIdentifier (final IonReader reader, final ReadContext context) { IonType ionType = reader.next(); assertFieldName(reader, "projectIdentifier"); if (ionType == IonType.NULL || ionType == null) { return null; } reader.stepIn(); InternalProjectIdentifier dependency = context.projectsIdentifiersMap .computeIfAbsent(readInt(reader, OBJECT_ID_FIELD), new SimpleObjectFactory<InternalProjectIdentifier>() { @Override public InternalProjectIdentifier create() { String projectPath = readString(reader, "projectPath"); InternalBuildIdentifier buildIdentifier = readBuildIdentifier(reader, context); return new InternalProjectIdentifier(buildIdentifier, projectPath); } }); reader.stepOut(); return dependency; }