1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.admincentral.shellapp.pulse.item.registry;
35
36 import info.magnolia.config.registry.AbstractRegistry;
37 import info.magnolia.config.registry.DefinitionMetadataBuilder;
38 import info.magnolia.config.registry.DefinitionProvider;
39 import info.magnolia.config.registry.DefinitionProviderWrapper;
40 import info.magnolia.config.registry.DefinitionType;
41 import info.magnolia.registry.RegistrationException;
42 import info.magnolia.ui.admincentral.shellapp.pulse.item.definition.ItemViewDefinition;
43
44 import javax.inject.Singleton;
45
46
47
48
49 @Singleton
50 public class ItemViewDefinitionRegistry extends AbstractRegistry<ItemViewDefinition> {
51 public static final DefinitionType TYPE = new DefinitionType() {
52 @Override
53 public String name() {
54 return "messageView";
55 }
56
57 @Override
58 public Class baseClass() {
59 return ItemViewDefinition.class;
60 }
61 };
62
63 @Override
64 public DefinitionType type() {
65 return TYPE;
66 }
67
68 @Override
69 public DefinitionMetadataBuilder newMetadataBuilder() {
70 return DefinitionMetadataBuilder.usingModuleAndRelativePathAsId();
71 }
72
73 public ItemViewDefinition get(String id) throws RegistrationException {
74 return getProvider(id).get();
75 }
76
77 @Override
78 protected DefinitionProvider<ItemViewDefinition> onRegister(final DefinitionProvider<ItemViewDefinition> provider) {
79 final DefinitionProvider<ItemViewDefinition> wrappedProvider = super.onRegister(provider);
80 return new DefinitionProviderWrapper<ItemViewDefinition>(wrappedProvider) {
81 @Override
82 public ItemViewDefinition get() {
83 final ItemViewDefinition td = super.get();
84 final String referenceString = wrappedProvider.getMetadata().getReferenceId();
85 td.setId(referenceString);
86 return td;
87 }
88 };
89 }
90 }