driver-core/src/main/com/mongodb/ReadPreference.java
public static TaggableReadPreference valueOf(final String name, final List<TagSet> tagSetList, final long maxStaleness,
                                                 final TimeUnit timeUnit) {
        return valueOf(name, tagSetList, (Long) maxStaleness, timeUnit);
    }
public static TaggableReadPreference valueOf(final String name, final List<TagSet> tagSetList, final long maxStaleness,
                                                 final TimeUnit timeUnit) {
        return valueOf(name, tagSetList, (Long) maxStaleness, timeUnit);
    }
public static TaggableReadPreference valueOf ( final String name , final List < TagSet > tagSetList , final long maxStaleness , final TimeUnit timeUnit ) { return valueOf ( name , tagSetList , ( Long ) maxStaleness , timeUnit ) ; }
Creates a taggable read preference from the given read preference name, list of tag sets, and max allowable staleness of secondaries.

<p>
The driver estimates the staleness of each secondary, based on lastWriteDate values provided in server isMaster responses,
and selects only those secondaries whose staleness is less than or equal to maxStaleness.
</p>

@param name the name of the read preference
@param tagSetList the list of tag sets
@param maxStaleness the max allowable staleness of secondaries. The minimum value is either 90 seconds, or the heartbeat frequency
plus 10 seconds, whichever is greatest.
@param timeUnit the time unit of maxStaleness
@return the taggable read preference
@since 3.4
@see TaggableReadPreference#getMaxStaleness(TimeUnit)
Creates a taggable read preference from the given read preference name list of tag sets and max allowable staleness of secondaries .