public void setData(ItemCaract caract, Numeric value) {
		if (caract.getNumericType() != value.getNumericType()) {
			throw new IllegalArgumentException();
		}
		if (data.containsKey(caract.getNumericType())) {
			throw new IllegalStateException();
		}
		data.put(caract, value);
		boolean change = false;
		do {
			change = false;
			change = eventuallyUseBeginComplete() || change;
			change = eventuallyUseBeginDuration() || change;
			change = eventuallyUseCompleteDuration() || change;
			change = eventuallyUseDurationWork() || change;
			change = eventuallyUseDurationLoad() || change;
			change = eventuallyUseLoadWork() || change;
		} while (change);
	}