Java Pattern Logics