Java property observer using annotation