public ConnectionGroupTree(UserContext userContext,ConnectionGroup root,List<ObjectPermission.Type> permissions) throws GuacamoleException {
  this.rootAPIGroup=new APIConnectionGroup(root);
  retrievedGroups.put(root.getIdentifier(),this.rootAPIGroup);
  User self=userContext.self();
  this.connectionPermissions=self.getConnectionPermissions();
  this.sharingProfilePermissions=self.getSharingProfilePermissions();
  this.connectionDirectory=userContext.getConnectionDirectory();
  this.connectionGroupDirectory=userContext.getConnectionGroupDirectory();
  this.sharingProfileDirectory=userContext.getSharingProfileDirectory();
  addConnectionGroupDescendants(Collections.singleton(root),permissions);
}

public ConnectionGroupTree ( UserContext userContext , ConnectionGroup root , List < ObjectPermission . Type > permissions ) throws GuacamoleException { this . rootAPIGroup = new APIConnectionGroup ( root ) ; retrievedGroups . put ( root . getIdentifier ( ) , this . rootAPIGroup ) ; User self = userContext . self ( ) ; this . connectionPermissions = self . getConnectionPermissions ( ) ; this . sharingProfilePermissions = self . getSharingProfilePermissions ( ) ; this . connectionDirectory = userContext . getConnectionDirectory ( ) ; this . connectionGroupDirectory = userContext . getConnectionGroupDirectory ( ) ; this . sharingProfileDirectory = userContext . getSharingProfileDirectory ( ) ; addConnectionGroupDescendants ( Collections . singleton ( root ) , permissions ) ; }
creates a new connection group tree using the given connection group as the tree root .
