1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.wiki.mow.core.api.wiki;
18
19 import org.chromattic.api.RelationshipType;
20 import org.chromattic.api.annotations.Create;
21 import org.chromattic.api.annotations.MappedBy;
22 import org.chromattic.api.annotations.OneToMany;
23 import org.exoplatform.services.log.ExoLogger;
24 import org.exoplatform.services.log.Log;
25 import org.exoplatform.wiki.WikiException;
26 import org.exoplatform.wiki.mow.api.Wiki;
27 import org.exoplatform.wiki.mow.core.api.MOWService;
28
29 import java.util.Collection;
30 import java.util.List;
31
32
33
34
35 public abstract class WikiContainer<T extends WikiImpl> {
36
37 private static final Log log = ExoLogger.getLogger(WikiContainer.class);
38
39 protected MOWService mowService;
40
41 public void setMOWService(MOWService mowService) {
42 this.mowService = mowService;
43 }
44
45 @OneToMany(type = RelationshipType.REFERENCE)
46 @MappedBy(WikiNodeType.Definition.WIKI_CONTAINER_REFERENCE)
47 public abstract Collection<T> getWikis();
48
49
50
51
52
53 public abstract T addWiki(Wiki wiki) throws WikiException;
54
55 public abstract T createWiki(Wiki wiki) throws WikiException;
56
57 @Create
58 public abstract T createWiki();
59
60 protected String validateWikiOwner(String wikiOwner){
61 return wikiOwner;
62 }
63
64 public T getWiki(String wikiOwner) {
65 return contains(wikiOwner);
66 }
67
68 public Collection<T> getAllWikis() {
69 return getWikis();
70 }
71
72
73
74
75
76
77 public T contains(String wikiOwner) {
78 wikiOwner = validateWikiOwner(wikiOwner);
79 if (wikiOwner == null) {
80 return null;
81 }
82 return getWikiObject(wikiOwner);
83 }
84
85
86
87
88
89
90 abstract protected T getWikiObject(String wikiOwner);
91
92 }