AbstractValueExpression is intended for "leaf" classes and it stubs a lot of AbstractExpression methods accordingly.
It is not the correct base class for a class like this with subexpressions.

This class should extend AbstractExpression" -- if that means you need to implement a few more abstract methods, FunctionExpression should provide a good model for them -- possibly with some simplification needed.