1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.giraph.block_app.framework.piece.messages;
19
20 import org.apache.giraph.conf.ImmutableClassesGiraphConfiguration;
21 import org.apache.giraph.factories.DefaultMessageValueFactory;
22 import org.apache.giraph.factories.MessageValueFactory;
23 import org.apache.giraph.function.Function;
24 import org.apache.giraph.writable.kryo.HadoopKryo;
25 import org.apache.hadoop.io.Writable;
26
27
28
29
30
31 public interface SupplierFromConf<T>
32 extends Function<ImmutableClassesGiraphConfiguration, T> {
33
34
35
36
37
38
39 public static class SupplierFromConfByCopy<T> implements SupplierFromConf<T> {
40 private final T value;
41
42 public SupplierFromConfByCopy(T value) {
43 this.value = value;
44 }
45
46 @Override
47 public T apply(ImmutableClassesGiraphConfiguration conf) {
48 return HadoopKryo.createCopy(value);
49 }
50 }
51
52
53
54
55
56
57 public static class DefaultMessageFactorySupplierFromConf<M extends Writable>
58 implements SupplierFromConf<MessageValueFactory<M>> {
59 private final Class<M> messageClass;
60
61 public DefaultMessageFactorySupplierFromConf(Class<M> messageClass) {
62 this.messageClass = messageClass;
63 }
64
65 @Override
66 public MessageValueFactory<M> apply(
67 ImmutableClassesGiraphConfiguration conf) {
68 return new DefaultMessageValueFactory<>(messageClass, conf);
69 }
70 }
71 }