1   package com.atlassian.user.impl.osuser;
2   
3   import com.opensymphony.user.provider.AccessProvider;
4   import com.opensymphony.user.provider.CredentialsProvider;
5   import com.opensymphony.user.provider.ProfileProvider;
6   import com.opensymphony.user.UserManager;
7   
8   import java.io.Serializable;
9   
10  /**
11   * UserManager.OSUAccessor is a gateway that can be passed from the UserManager
12   * to any other object that allows priveleged callbacks.
13   */
14  public class DefaultOSUAccessor implements Serializable, OSUAccessor
15  {
16      private AccessProvider accessProvider;
17      private CredentialsProvider credentialsProvider;
18      private ProfileProvider profileProvider;
19  
20      public DefaultOSUAccessor(){}
21  
22      public DefaultOSUAccessor(AccessProvider accessProvider, CredentialsProvider credentialsProvider, ProfileProvider profileProvider)
23      {
24          this.accessProvider = accessProvider;
25          this.credentialsProvider = credentialsProvider;
26          this.profileProvider = profileProvider;
27      }
28  
29      public UserManager getUserManager()
30      {
31          throw new UnsupportedOperationException(this.getClass().getName() + " does not make use of the osuser UserManager singleton. " +
32                  "Use IoC instead");
33      }
34  
35      /**
36       * Return appropriate AccessProvider for entity.
37       */
38      public AccessProvider getAccessProvider(String name)
39      {
40          if (accessProvider.handles(name))
41              return accessProvider;
42  
43          return null;
44      }
45  
46      /**
47       * Return appropriate CredentialsProvider for entity.
48       */
49      public CredentialsProvider getCredentialsProvider(String name)
50      {
51          if (credentialsProvider.handles(name))
52              return credentialsProvider;
53  
54          return null;
55      }
56  
57      /**
58       * Return appropriate ProfileProvider for entity.
59       */
60      public ProfileProvider getProfileProvider(String name)
61      {
62          if (profileProvider.handles(name))
63              return profileProvider;
64  
65          return null;
66      }
67  
68      public AccessProvider getAccessProvider()
69      {
70          return accessProvider;
71      }
72  
73      public CredentialsProvider getCredentialsProvider()
74      {
75          return credentialsProvider;
76      }
77  
78      public ProfileProvider getProfileProvider()
79      {
80          return profileProvider;
81      }
82  
83      public void setAccessProvider(AccessProvider accessProvider)
84      {
85          this.accessProvider = accessProvider;
86      }
87  
88      public void setCredentialsProvider(CredentialsProvider credentialsProvider)
89      {
90          this.credentialsProvider = credentialsProvider;
91      }
92  
93      public void setProfileProvider(ProfileProvider profileProvider)
94      {
95          this.profileProvider = profileProvider;
96      }
97  }