1 package edu.internet2.middleware.grouper.grouperUi.beans.ui;
2
3 import java.util.Set;
4
5 import edu.internet2.middleware.grouper.GrouperSession;
6 import edu.internet2.middleware.grouper.attr.AttributeDefName;
7 import edu.internet2.middleware.grouper.exception.GrouperSessionException;
8 import edu.internet2.middleware.grouper.grouperUi.beans.api.GuiAttributeAssignFinderResults;
9 import edu.internet2.middleware.grouper.grouperUi.beans.api.GuiAttributeDefName;
10 import edu.internet2.middleware.grouper.grouperUi.beans.json.GuiPaging;
11 import edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2AttributeDefName;
12 import edu.internet2.middleware.grouper.misc.GrouperSessionHandler;
13 import edu.internet2.middleware.grouper.ui.GrouperUiFilter;
14 import edu.internet2.middleware.grouper.ui.util.GrouperUiConfig;
15 import edu.internet2.middleware.grouper.ui.util.GrouperUiUserData;
16 import edu.internet2.middleware.grouper.userData.GrouperUserDataApi;
17 import edu.internet2.middleware.grouper.util.GrouperUtil;
18 import edu.internet2.middleware.subject.Subject;
19
20
21
22
23
24 public class AttributeDefNameContainer {
25
26
27
28
29 private GuiAttributeDefName guiAttributeDefName;
30
31
32
33
34 private GuiAttributeAssignFinderResults guiAttributeAssignFinderResults;
35
36
37
38
39 private GuiPaging guiPaging = null;
40
41
42
43
44
45
46 public GuiAttributeDefName getGuiAttributeDefName() {
47 return guiAttributeDefName;
48 }
49
50
51
52
53
54 public void setGuiAttributeDefName(GuiAttributeDefName guiAttributeDefName) {
55 this.guiAttributeDefName = guiAttributeDefName;
56 }
57
58
59
60
61 private Boolean favorite;
62
63
64
65
66
67 public boolean isFavorite() {
68
69 if (this.favorite == null) {
70
71 final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn();
72
73 this.favorite = (Boolean)GrouperSession.callbackGrouperSession(
74 GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() {
75
76 @Override
77 public Object callback(GrouperSession grouperSession) throws GrouperSessionException {
78
79 Set<AttributeDefName> favorites = GrouperUtil.nonNull(
80 GrouperUserDataApi.favoriteAttributeDefNames(GrouperUiUserData.grouperUiGroupNameForUserData(), loggedInSubject));
81 return favorites.contains(AttributeDefNameContainer.this.getGuiAttributeDefName().getAttributeDefName());
82
83 }
84 });
85 }
86
87 return this.favorite;
88 }
89
90
91
92
93
94 public GuiAttributeAssignFinderResults getGuiAttributeAssignFinderResults() {
95 return guiAttributeAssignFinderResults;
96 }
97
98
99
100
101
102 public void setGuiAttributeAssignFinderResults(GuiAttributeAssignFinderResults guiAttributeAssignFinderResults) {
103 this.guiAttributeAssignFinderResults = guiAttributeAssignFinderResults;
104 }
105
106
107
108
109
110 public GuiPaging getGuiPaging() {
111
112 if (this.guiPaging == null) {
113 this.guiPaging = new GuiPaging();
114 }
115 return this.guiPaging;
116 }
117
118
119
120
121
122 public void setGuiPaging(GuiPaging guiPaging) {
123 this.guiPaging = guiPaging;
124 }
125
126
127
128
129
130 public boolean isConfigPreventUiDeletion() {
131 return GrouperUiConfig.retrieveConfig()
132 .propertyValueBoolean(UiV2AttributeDefName.PROPERTY_PREVENT_DELETE_IN_UI, false);
133 }
134
135 }