Type checking annotation-based product lines
hyper / j : multi - dimensional separation of concerns for java .