aboutsummaryrefslogtreecommitdiff
path: root/usage_examples/experimental/DelegateExample_pre.jpage
diff options
context:
space:
mode:
Diffstat (limited to 'usage_examples/experimental/DelegateExample_pre.jpage')
-rw-r--r--usage_examples/experimental/DelegateExample_pre.jpage37
1 files changed, 37 insertions, 0 deletions
diff --git a/usage_examples/experimental/DelegateExample_pre.jpage b/usage_examples/experimental/DelegateExample_pre.jpage
new file mode 100644
index 00000000..885ab3a8
--- /dev/null
+++ b/usage_examples/experimental/DelegateExample_pre.jpage
@@ -0,0 +1,37 @@
+import java.util.ArrayList;
+import java.util.Collection;
+
+import lombok.experimental.Delegate;
+
+public class DelegationExample {
+ private interface SimpleCollection {
+ boolean add(String item);
+ boolean remove(Object item);
+ }
+
+ @Delegate(types=SimpleCollection.class)
+ private final Collection<String> collection = new ArrayList<String>();
+}
+
+
+class ExcludesDelegateExample {
+ long counter = 0L;
+
+ private interface Add {
+ boolean add(String x);
+ boolean addAll(Collection<? extends String> x);
+ }
+
+ @Delegate(excludes=Add.class)
+ private final Collection<String> collection = new ArrayList<String>();
+
+ public boolean add(String item) {
+ counter++;
+ return collection.add(item);
+ }
+
+ public boolean addAll(Collection<? extends String> col) {
+ counter += col.size();
+ return collection.addAll(col);
+ }
+}