class Authorization {


    private final IExpressionContext context;
    private final Authentication authentication;

    


    public Authorization(
            final IExpressionContext context,
            final Authentication authentication) {
        
        super();

        this.context = context;
        this.authentication = authentication;

    }


    public IExpressionContext getContext() {
        return this.context;
    }

    public Authentication getAuthentication() {
        return this.authentication;
    }



    // Synonym method
    public boolean expr(final String expression) {
        return expression(expression);
    }


    public boolean expression(final String expression) {
        
        Validate.notEmpty(expression, "Access expression cannot be null");
        
        return AuthUtils.authorizeUsingAccessExpression(this.context, expression, this.authentication);
        
    }
    

    
    
    public boolean url(final String url) {
        return url("GET", url);
    }

    
    
    public boolean url(final String method, final String url) {<FILL_FUNCTION_BODY>}

    
}

        
        Validate.notEmpty(url, "URL cannot be null");
        
        return AuthUtils.authorizeUsingUrlCheck(this.context, url, method, this.authentication);
        
    
<no_super_class>