private boolean checkParameters(FHIRLexer lexer, SourceLocation location, ExpressionNode exp, FunctionDetails details) throws FHIRLexerException { switch (exp.getFunction()) { case Empty: return checkParamCount(lexer, location, exp, 0); case Not: return checkParamCount(lexer, location, exp, 0); case Exists: return checkParamCount(lexer, location, exp, 0); case SubsetOf: return checkParamCount(lexer, location, exp, 1); case SupersetOf: return checkParamCount(lexer, location, exp, 1); case IsDistinct: return checkParamCount(lexer, location, exp, 0); case Distinct: return checkParamCount(lexer, location, exp, 0); case Count: return checkParamCount(lexer, location, exp, 0); case Where: return checkParamCount(lexer, location, exp, 1); case Select: return checkParamCount(lexer, location, exp, 1); case All: return checkParamCount(lexer, location, exp, 0, 1); case Repeat: return checkParamCount(lexer, location, exp, 1); case Aggregate: return checkParamCount(lexer, location, exp, 1, 2); case Item: return checkParamCount(lexer, location, exp, 1); case As: return checkParamCount(lexer, location, exp, 1); case OfType: return checkParamCount(lexer, location, exp, 1); case Type: return checkParamCount(lexer, location, exp, 0); case Is: return checkParamCount(lexer, location, exp, 1); case Single: return checkParamCount(lexer, location, exp, 0); case First: return checkParamCount(lexer, location, exp, 0); case Last: return checkParamCount(lexer, location, exp, 0); case Tail: return checkParamCount(lexer, location, exp, 0); case Skip: return checkParamCount(lexer, location, exp, 1); case Take: return checkParamCount(lexer, location, exp, 1); case Union: return checkParamCount(lexer, location, exp, 1); case Combine: return checkParamCount(lexer, location, exp, 1); case Intersect: return checkParamCount(lexer, location, exp, 1); case Exclude: return checkParamCount(lexer, location, exp, 1);
private boolean checkParameters(FHIRLexer lexer, SourceLocation location, ExpressionNode exp, FunctionDetails details) throws FHIRLexerException { switch (exp.getFunction()) { case Empty: return checkParamCount(lexer, location, exp, 0); case Not: return checkParamCount(lexer, location, exp, 0); case Exists: return checkParamCount(lexer, location, exp, 0); case SubsetOf: return checkParamCount(lexer, location, exp, 1); case SupersetOf: return checkParamCount(lexer, location, exp, 1); case IsDistinct: return checkParamCount(lexer, location, exp, 0); case Distinct: return checkParamCount(lexer, location, exp, 0); case Count: return checkParamCount(lexer, location, exp, 0); case Where: return checkParamCount(lexer, location, exp, 1); case Select: return checkParamCount(lexer, location, exp, 1); case All: return checkParamCount(lexer, location, exp, 0, 1); case Repeat: return checkParamCount(lexer, location, exp, 1); case Aggregate: return checkParamCount(lexer, location, exp, 1, 2); case Item: return checkParamCount(lexer, location, exp, 1); case As: return checkParamCount(lexer, location, exp, 1); case OfType: return checkParamCount(lexer, location, exp, 1); case Type: return checkParamCount(lexer, location, exp, 0); case Is: return checkParamCount(lexer, location, exp, 1); case Single: return checkParamCount(lexer, location, exp, 0); case First: return checkParamCount(lexer, location, exp, 0); case Last: return checkParamCount(lexer, location, exp, 0); case Tail: return checkParamCount(lexer, location, exp, 0); case Skip: return checkParamCount(lexer, location, exp, 1); case Take: return checkParamCount(lexer, location, exp, 1); case Union: return checkParamCount(lexer, location, exp, 1); case Combine: return checkParamCount(lexer, location, exp, 1); case Intersect: return checkParamCount(lexer, location, exp, 1); case Exclude: return checkParamCount(lexer, location, exp, 1);