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.ManyToOne;
22 import org.chromattic.api.annotations.MappedBy;
23 import org.chromattic.api.annotations.OneToOne;
24 import org.chromattic.api.annotations.Owner;
25 import org.chromattic.api.annotations.PrimaryType;
26 import org.exoplatform.portal.config.model.PortalConfig;
27 import org.exoplatform.wiki.mow.api.WikiType;
28
29
30
31
32 @PrimaryType(name = WikiNodeType.USER_WIKI)
33 public abstract class UserWiki extends WikiImpl {
34
35 public WikiType getWikiType() {
36 return WikiType.USER;
37 }
38
39 @Override
40 public String getType() {
41 return PortalConfig.USER_TYPE;
42 }
43
44 public PageImpl getDraftPagesContainer() {
45 PageImpl page = getDraftPagesContainerByChromattic();
46 if (page == null) {
47 page = createWikiPage();
48 setDraftPagesContainerByChromattic(page);
49 }
50 return page;
51 }
52
53 @ManyToOne(type = RelationshipType.REFERENCE)
54 @MappedBy(WikiNodeType.Definition.WIKI_CONTAINER_REFERENCE)
55 public abstract UserWikiContainer getUserWikis();
56
57 public abstract void setUserWikis(UserWikiContainer userWikiContainer);
58
59 @OneToOne
60 @Owner
61 @MappedBy(WikiNodeType.Definition.DRAFT_PAGES)
62 protected abstract PageImpl getDraftPagesContainerByChromattic();
63 protected abstract void setDraftPagesContainerByChromattic(PageImpl page);
64
65 @Create
66 public abstract DraftPageImpl createDraftPage();
67 }