* @return 観測回数に関する属性
* @throws IllegalArgumentException 引数に{@code null}が指定された場合
*/
public ObservationCount getObservationCount(ObservationCount... defaults) {
Precondition.checkMustNotBeNull(defaults, "defaults"); //$NON-NLS-1$
ObservationCount current = ObservationCount.DONT_CARE;
for (ObservationCount oc : defaults) {
current = current.and(oc);
}
if (current.atLeastOnce == false) {
if (executable.getAnnotation(Sticky.class) != null) {
current = current.and(ObservationCount.AT_LEAST_ONCE);
}
}
if (current.atMostOnce == false) {
if (executable.getAnnotation(Volatile.class) != null) {
current = current.and(ObservationCount.AT_MOST_ONCE);
}
}
return current;
}