Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*!
 * Copyright 2002 - 2013 Webdetails, a Pentaho company.  All rights reserved.
 *
 * This software was developed by Webdetails and is provided under the terms
 * of the Mozilla Public License, Version 2.0, or any later version. You may not use
 * this file except in compliance with the license. If you need a copy of the license,
 * please go to  http://mozilla.org/MPL/2.0/. The Initial Developer is Webdetails.
 *
 * Software distributed under the Mozilla Public License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or  implied. Please refer to
* the license for the specific language governing your rights and limitations.
*/
package pt.webdetails.cda.connections.mondrian;
public class MondrianRoleMapper implements IMondrianRoleMapper {
  private static final Log logger = LogFactory.getLogMondrianRoleMapper.class );
  protected boolean isObjectDefined() {
  }
    return PentahoSystem.getIConnectionUserRoleMapper.class.null );
  }
  protected IPentahoSession getSession() {
    return PentahoSessionHolder.getSession();
  }
  public String getRolesString catalog ) {
    if ( isObjectDefined() ) {
      final IConnectionUserRoleMapper mondrianUserRoleMapper = getConnectionUserRoleMapper();
      final String[] validMondrianRolesForUser;
      try {
        try {
          validMondrianRolesForUser = mondrianUserRoleMapper.mapConnectionRoles(getSession(), "solution:" + catalog.replaceAll("solution/""" ) ); //XXX report the exception
        } catch ( NullPointerException ex ) {
          .warn"NullPointerException when trying to resolve role for " + getSession().getName() );
          return "";
        }
        if ( ( validMondrianRolesForUser != null ) && ( validMondrianRolesForUser.length > 0 ) ) {
          final StringBuffer buff = new StringBuffer();
          for ( int i = 0; i < validMondrianRolesForUser.lengthi++ ) {
            final String aRole = validMondrianRolesForUser[i];
            // According to http://mondrian.pentaho.org/documentation/configuration.php
            // double-comma escapes a comma
            if ( i > 0 ) {
              buff.append"," );
            }
            buff.appendaRole.replaceAll","",," ) );
          }
          .debug"Assembled role: " + buff.toString() + " for catalog: " + catalog );
          return buff.toString();
        }
      } catch ( PentahoAccessControlException e ) { //In case of exception do...
      }
    }
    return "";
  }
New to GrepCode? Check out our FAQ X