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>