Can't you return a new object with the new sig based on the setProjection params?
What do you have in mind? The setProjection currently takes an array of strings, javac can hardly guess what their value will be at runtime