All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.internet2.middleware.grouperBox.GrouperBoxUser Maven / Gradle / Ivy

There is a newer version: 4.17.3
Show newest version
package edu.internet2.middleware.grouperBox;

import java.util.Map;

import com.box.sdk.BoxUser;

import edu.internet2.middleware.grouperClient.util.ExpirableCache;
import edu.internet2.middleware.grouperClient.util.GrouperClientConfig;

/**
 * grouper box user
 * @author mchyzer
 *
 */
public class GrouperBoxUser {

  /**
   * cache connections
   */
  private static ExpirableCache> retrieveUsersCache = null;
    
  /**
   * 
   * @return box api connection never null
   */
  public synchronized static Map retrieveUsers() {
    
    Map usersMap = retrieveUsersCache == null ? null : retrieveUsersCache.get(Boolean.TRUE);
    
    if (usersMap == null) {
      
      usersMap = GrouperBoxCommands.retrieveBoxUsers();
      
      // make a new one each time so the size is updated
      int userCacheMinutes = GrouperClientConfig.retrieveConfig().propertyValueInt("grouperBox.boxUserCacheMinutes", 10);
      retrieveUsersCache = new ExpirableCache>(userCacheMinutes);
      retrieveUsersCache.put(Boolean.TRUE, usersMap);
    }
    
    return usersMap;
  }
  
  /**
   * 
   * @param boxUser1
   */
  public GrouperBoxUser(BoxUser boxUser1) {
    this.boxUser = boxUser1;
  }
  
  /**
   * 
   * @param boxUser1
   */
  public GrouperBoxUser(BoxUser boxUser1, BoxUser.Info boxUserInfo1) {
    this.boxUser = boxUser1;
    this.boxUserInfo = boxUserInfo1;
  }
  
  /**
   * box user
   */
  private BoxUser boxUser;
  
  /**
   * box user info
   */
  private BoxUser.Info boxUserInfo;

  /**
   * 
   * @return box user
   */
  public BoxUser getBoxUser() {
    return this.boxUser;
  }

  /**
   * lazy load this
   * @return box user info
   */
  public BoxUser.Info getBoxUserInfo() {
    if (this.boxUserInfo == null) {
      this.boxUserInfo = this.boxUser.getInfo();
    }
    return this.boxUserInfo;
  }

  
  
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy