spring-geode/src/main/java/org/springframework/geode/core/io/ResourceReader.java
/**
	 * Composes this {@link ResourceReader} with the given {@link ResourceReader}
	 * using the {@literal Composite Software Design Pattern}.
	 *
	 * @param reader {@link ResourceReader} to compose with this reader.
	 * @return a composite {@link ResourceReader} composed of this {@link ResourceReader}
	 * and the given {@link ResourceReader}. If the given {@link ResourceReader} is {@literal null},
	 * then this {@link ResourceReader} is returned.
	 * @see <a href="https://en.wikipedia.org/wiki/Composite_pattern">Compsite Software Design Pattern</a>
	 * @see ResourceReader
	 */
Composes this  ResourceReader with the given  ResourceReader
using the  Composite Software Design Pattern.

@param reader  ResourceReader to compose with this reader.
@return a composite  ResourceReader composed of this  ResourceReader
and the given  ResourceReader. If the given  ResourceReader is  null,
then this  ResourceReader is returned.
@see Compsite Software Design Pattern
@see ResourceReader
Composes this ResourceReader with the given ResourceReader using the Composite Software Design Pattern . @param reader ResourceReader to compose with this reader . @return a composite ResourceReader composed of this ResourceReader and the given ResourceReader . If the given ResourceReader is null then this ResourceReader is returned . @see Compsite Software Design Pattern @see ResourceReader
default @NonNull ResourceReader thenReadFrom(@Nullable ResourceReader reader) {
		return reader == null ? this
			: resource -> {
				try {
					return this.read(resource);
				}
				catch (UnhandledResourceException ignore) {
					return reader.read(resource);
				}
			};
	}
default @ NonNull ResourceReader thenReadFrom ( @ Nullable ResourceReader reader ) { return reader == null ? this : resource -> { try { return this . read ( resource ) ; } catch ( UnhandledResourceException ignore ) { return reader . read ( resource ) ; } } ; }
Composes this {@link ResourceReader} with the given {@link ResourceReader}
 using the {@literal Composite Software Design Pattern}.
Composes this { @link ResourceReader } with the given { @link ResourceReader } using the { @literal Composite Software Design Pattern } .