Concurrent Typestate-Oriented Programming in Java