All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tenio.interstellar.mongo.config.parser.ReadConcernLevelParser Maven / Gradle / Ivy

There is a newer version: 0.1.30
Show newest version
package org.tenio.interstellar.mongo.config.parser;

import com.mongodb.ConnectionString;
import com.mongodb.ReadConcern;
import com.mongodb.ReadConcernLevel;
import org.tenio.interstellar.mongo.config.MongoClientProperties;

import java.util.Optional;

/**
 * TODO
 * 

* @author: Ban Tenio * @version: 1.0 */ public class ReadConcernLevelParser { private final ConnectionString connectionString; private final MongoClientProperties config; /** * * TODO * * @param connectionString TODO * @param config TODO */ public ReadConcernLevelParser(ConnectionString connectionString, MongoClientProperties config) { this.connectionString = connectionString; this.config = config; } /** * * TODO * * @return TODO */ public Optional readConcern() { return tryToParseFromConnectionString().map(this::lift).orElseGet(this::tryToParseFromConfig); } private Optional lift(ReadConcern readConcern) { return Optional.ofNullable(readConcern); } private Optional tryToParseFromConnectionString() { return Optional.ofNullable(connectionString) .flatMap(cs -> Optional.ofNullable(cs.getReadConcern())); } private Optional tryToParseFromConfig() { return Optional.ofNullable(config) .flatMap(cfg -> Optional.ofNullable(cfg.getReadConcernLevel())) .map(ReadConcernLevel::fromString) .map(ReadConcern::new); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy