From 3102d8bce3426d9cf41aeaf201c360d342677770 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 9 Apr 2016 14:22:20 -0700 Subject: Switching from Ivy+Ant to Maven. --- .../p4square/grow/provider/DelegateProvider.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/com/p4square/grow/provider/DelegateProvider.java (limited to 'src/main/java/com/p4square/grow/provider/DelegateProvider.java') diff --git a/src/main/java/com/p4square/grow/provider/DelegateProvider.java b/src/main/java/com/p4square/grow/provider/DelegateProvider.java new file mode 100644 index 0000000..42dcc63 --- /dev/null +++ b/src/main/java/com/p4square/grow/provider/DelegateProvider.java @@ -0,0 +1,40 @@ +/* + * Copyright 2014 Jesse Morgan + */ + +package com.p4square.grow.provider; + +import java.io.IOException; + +/** + * DelegateProvider wraps an existing Provider an transforms the key from + * type K to type D. + * + * @author Jesse Morgan + */ +public abstract class DelegateProvider implements Provider { + + private Provider mProvider; + + public DelegateProvider(final Provider provider) { + mProvider = provider; + } + + @Override + public V get(final K key) throws IOException { + return mProvider.get(makeKey(key)); + } + + @Override + public void put(final K key, final V obj) throws IOException { + mProvider.put(makeKey(key), obj); + } + + /** + * Make a Key for the delegated provider. + * + * @param input The pre-transform key. + * @return the post-transform key. + */ + protected abstract D makeKey(final K input); +} -- cgit v1.2.3