[516797] Fix Bad @NonNull declarations detected by JDT M7
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/values/TupleValueImpl.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/values/TupleValueImpl.java
index 8ea29bc..ff9741c 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/values/TupleValueImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/values/TupleValueImpl.java
@@ -66,7 +66,7 @@
 	 * @param tupleTypeId my type
 	 * @param values my values which are aligned to the tupleTypeId.getParts()
 	 */
-	public TupleValueImpl(@NonNull TupleTypeId tupleTypeId, @NonNull Object... values) {
+	public TupleValueImpl(@NonNull TupleTypeId tupleTypeId, @Nullable Object... values) {
 		this.tupleTypeId = tupleTypeId;
 		TuplePartId[] partIds = tupleTypeId.getPartIds();
 		if (partIds.length != values.length) {
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
index 3e65582..09163c1 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/utilities/ValueUtil.java
@@ -96,7 +96,7 @@
  * @since 1.1
  */
 public abstract class ValueUtil
-{	
+{
 	private static final @NonNull String METAMODEL_NAME_PREFIX = PivotConstants.METAMODEL_NAME + "::";
 
 	public static final @NonNull String NULL_STRING = "null";
@@ -105,7 +105,7 @@
 	private static final int POSITIVE_INTEGERS = 1025;
 	private static final @Nullable IntegerValue @NonNull [] INTEGER_VALUES = new @Nullable IntegerValue[NEGATIVE_INTEGERS + POSITIVE_INTEGERS];
 
-	public static @NonNull Bag<?> EMPTY_BAG = new BagImpl<Object>();	
+	public static @NonNull Bag<?> EMPTY_BAG = new BagImpl<Object>();
 	public static final @NonNull Set<Object> EMPTY_SET = Collections.emptySet();
 
 	@SuppressWarnings("null")
@@ -117,17 +117,17 @@
 	@SuppressWarnings("null")
 	public static final @NonNull BigInteger LONG_MIN_VALUE = BigInteger.valueOf(Long.MIN_VALUE);
 	private static final String maxLongValue = Long.toString(Long.MAX_VALUE);
-	private static final int maxLongSize = maxLongValue.length();	
+	private static final int maxLongSize = maxLongValue.length();
 
 	public static final @NonNull Boolean FALSE_VALUE = Boolean.FALSE;
-	public static final @NonNull InvalidValueException INVALID_VALUE = new InvalidValueException("invalid"); 
-	public static final @NonNull NullValue NULL_VALUE = new NullValueImpl(); 
+	public static final @NonNull InvalidValueException INVALID_VALUE = new InvalidValueException("invalid");
+	public static final @NonNull NullValue NULL_VALUE = new NullValueImpl();
 	public static final @NonNull IntegerValue ONE_VALUE = integerValueOf(1);
 	public static final @NonNull UnlimitedNaturalValue UNLIMITED_ONE_VALUE = (UnlimitedNaturalValue)ONE_VALUE;
 	public static final @NonNull Boolean TRUE_VALUE = Boolean.TRUE;
-	public static final @NonNull UnlimitedValue UNLIMITED_VALUE = new UnlimitedValueImpl(); 
+	public static final @NonNull UnlimitedValue UNLIMITED_VALUE = new UnlimitedValueImpl();
 	public static final @NonNull IntegerValue ZERO_VALUE = integerValueOf(0);
-	
+
 	private static boolean allStaticsInitialized = false;
 
 	public static @NonNull BagValue asBagValue(@Nullable Object value) {
@@ -377,9 +377,9 @@
 		if (anObject instanceof BigDecimal) {
 			return (BigDecimal)anObject;
 		}
-//		else if (anObject instanceof Unlimited) {
-//			return BigDecimal.valueOf(Double.POSITIVE_INFINITY);
-//		}
+		//		else if (anObject instanceof Unlimited) {
+		//			return BigDecimal.valueOf(Double.POSITIVE_INFINITY);
+		//		}
 		else if (anObject instanceof Number) {
 			return BigDecimal.valueOf(((Number)anObject).doubleValue());
 		}
@@ -396,9 +396,9 @@
 		if (anObject instanceof BigInteger) {
 			return (BigInteger)anObject;
 		}
-//		else if (anObject instanceof Unlimited) {
-//			return UNLIMITED_VALUE;
-//		}
+		//		else if (anObject instanceof Unlimited) {
+		//			return UNLIMITED_VALUE;
+		//		}
 		else if (anObject instanceof Number) {
 			return BigInteger.valueOf(((Number)anObject).longValue());
 		}
@@ -409,7 +409,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidInteger, anObject);
 		}
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -427,9 +427,9 @@
 		if (anObject instanceof Character) {
 			return (Character)anObject;
 		}
-//		else if (anObject instanceof Unlimited) {
-//			return UNLIMITED_VALUE;
-//		}
+		//		else if (anObject instanceof Unlimited) {
+		//			return UNLIMITED_VALUE;
+		//		}
 		else if (anObject instanceof Number) {
 			return Character.valueOf((char)((Number)anObject).longValue());
 		}
@@ -470,7 +470,7 @@
 
 	public static BagValue.@NonNull Accumulator createBagAccumulatorValue(@NonNull CollectionTypeId collectedId) {
 		return new BagValueImpl.Accumulator(collectedId);
-	}	
+	}
 
 	public static @NonNull BagValue createBagOfEach(@NonNull CollectionTypeId typeId, @Nullable Object @NonNull ... boxedValues) {
 		return new BagValueImpl(typeId, BagValueImpl.createBagOfEach(boxedValues));
@@ -507,7 +507,7 @@
 		else /*if (collectionId == TypeId.SET)*/ {
 			return new SetValueImpl.Accumulator(collectedId);
 		}
-	}	
+	}
 
 	public static @NonNull InvalidValueException createInvalidValue(@NonNull Exception e) {
 		if (e instanceof InvalidValueException) {
@@ -517,7 +517,7 @@
 			return new InvalidValueException(e);
 		}
 	}
-	
+
 	public static @NonNull MapValue createMapOfEach(@NonNull MapTypeId typeId, @NonNull MapEntry @NonNull ... mapEntries) {
 		return MapValueImpl.createMapValueOfEach(typeId, mapEntries);
 	}
@@ -536,11 +536,11 @@
 
 	public static OrderedSetValue.@NonNull Accumulator createOrderedSetAccumulatorValue(@NonNull CollectionTypeId collectedId) {
 		return new SparseOrderedSetValueImpl.Accumulator(collectedId);
-	}	
+	}
 
-//	public static @NonNull OrderedSetValue createOrderedSetRange(@NonNull CollectionTypeId typeId, @NonNull IntegerRange range) {
-//		return new RangeOrderedSetValueImpl(typeId, range);
-//	}
+	//	public static @NonNull OrderedSetValue createOrderedSetRange(@NonNull CollectionTypeId typeId, @NonNull IntegerRange range) {
+	//		return new RangeOrderedSetValueImpl(typeId, range);
+	//	}
 
 	public static @NonNull OrderedSetValue createOrderedSetOfEach(@NonNull CollectionTypeId typeId, @Nullable Object @NonNull ... boxedValues) {
 		return new SparseOrderedSetValueImpl(typeId, SparseOrderedSetValueImpl.createOrderedSetOfEach(boxedValues));
@@ -569,7 +569,7 @@
 
 	public static SequenceValue.@NonNull Accumulator createSequenceAccumulatorValue(@NonNull CollectionTypeId collectedId) {
 		return new SparseSequenceValueImpl.Accumulator(collectedId);
-	}	
+	}
 
 	public static @NonNull SequenceValue createSequenceOfEach(@NonNull CollectionTypeId typeId, @Nullable Object @NonNull ... boxedValues) {
 		return new SparseSequenceValueImpl(typeId, SparseSequenceValueImpl.createSequenceOfEach(boxedValues));
@@ -598,7 +598,7 @@
 
 	public static SetValue.@NonNull Accumulator createSetAccumulatorValue(@NonNull CollectionTypeId collectedId) {
 		return new SetValueImpl.Accumulator(collectedId);
-	}	
+	}
 
 	public static @NonNull SetValue createSetOfEach(@NonNull CollectionTypeId typeId, @Nullable Object @NonNull ... boxedValues) {
 		return new SetValueImpl(typeId, SetValueImpl.createSetOfEach(boxedValues));
@@ -625,10 +625,10 @@
 		return new TupleValueImpl(typeId, values);
 	}
 
-	public static @NonNull TupleValue createTupleOfEach(@NonNull TupleTypeId typeId, @NonNull Object... values) {
+	public static @NonNull TupleValue createTupleOfEach(@NonNull TupleTypeId typeId, @Nullable Object... values) {
 		return new TupleValueImpl(typeId, values);
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -640,7 +640,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidReal, anObject);
 		}
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -653,7 +653,6 @@
 		}
 	}
 
-	@SuppressWarnings("null")
 	public static @NonNull String getElementIdName(@NonNull ElementId elementId) {
 		String name = elementId.toString();
 		if (name.startsWith(METAMODEL_NAME_PREFIX)) {
@@ -661,8 +660,8 @@
 		}
 		return name;
 	}
-	
-	/** @deprecated only used to support deprecated code 
+
+	/** @deprecated only used to support deprecated code
 	 * @since 1.1*/
 	@Deprecated
 	public static @NonNull Executor getExecutor(@NonNull Evaluator evaluator) {
@@ -671,7 +670,7 @@
 		}
 		return ((EvaluationVisitor.EvaluationVisitorExtension)evaluator).getExecutor();
 	}
-	
+
 	public static String getTypeName(@Nullable Object value) {
 		if (value instanceof Boolean) {
 			return TypeId.BOOLEAN_NAME;
@@ -687,7 +686,7 @@
 		}
 		return "Object";
 	}
-	
+
 	/**
 	 * Initialize all static variables in this package to avoid thread contention between conflicting initializations.
 	 * <p>
@@ -704,10 +703,10 @@
 					// org.eclipse.ocl.domain.evaluation
 					ModelManager.NULL.getClass();
 					// org.eclipse.ocl.domain.ids
-//					IdManager.getClass();
+					//					IdManager.getClass();
 					TemplateableId.NULL_TEMPLATEABLE_ID_ARRAY.getClass();
-//					BindingsId.EMPTY_LIST.getClass();
-//					TemplateParameterId.NULL_TEMPLATE_PARAMETER_ID_ARRAY.getClass();
+					//					BindingsId.EMPTY_LIST.getClass();
+					//					TemplateParameterId.NULL_TEMPLATE_PARAMETER_ID_ARRAY.getClass();
 					TypeId.INTEGER.getClass();
 					// org.eclipse.ocl.domain.types
 					AbstractInheritance.initStatics();
@@ -729,15 +728,15 @@
 					CollectionValueImpl.initStatics();
 					RealValueImpl.initStatics();
 					// org.eclipse.ocl.domain.values.util
-//					new ValuesAdapterFactory();
-//					new ValuesSwitch<Object>();
+					//					new ValuesAdapterFactory();
+					//					new ValuesSwitch<Object>();
 					return true;
 				}
 			}
 		}
 		return false;
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -765,7 +764,7 @@
 					}
 					return INTEGER_VALUES[index] = new IntIntegerValueImpl(value);
 				}
-			}			
+			}
 		}
 		return new IntIntegerValueImpl(value);
 	}
@@ -778,7 +777,7 @@
 			return new LongIntegerValueImpl(value);
 		}
 	}
-	
+
 	public static @NonNull IntegerValue integerValueOf(@Nullable BigInteger value) {
 		if (value == null) {
 			throw new InvalidValueException(PivotMessages.InvalidInteger, value);
@@ -806,9 +805,9 @@
 		if (aValue instanceof BigInteger) {
 			return integerValueOf((BigInteger)aValue);
 		}
-//		else if (aValue instanceof Unlimited) {
-//			return UNLIMITED_VALUE;
-//		}
+		//		else if (aValue instanceof Unlimited) {
+		//			return UNLIMITED_VALUE;
+		//		}
 		else if (aValue instanceof Number) {
 			return integerValueOf(((Number)aValue).longValue());
 		}
@@ -822,7 +821,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidInteger, aValue);
 		}
 	}
-	
+
 	/**
 	 * Creates an IntegerValue representation for aValue.
 	 * @param aValue the string representation of a (non-negative) integer number
@@ -865,7 +864,7 @@
 		}
 		return true;
 	}
-	
+
 	public static @Nullable CollectionValue isCollectionValue(@Nullable Object value) {
 		if ((value instanceof CollectionValue) && !(value instanceof NullValue)) {
 			return (CollectionValue)value;
@@ -893,15 +892,15 @@
 		}
 		return true;
 	}
-	
+
 	/**
 	 * Return true if aNumber is a known integer representation that can be converted to an IntegerValue.
-	 * Returns false for other types including IntegerValue. 
+	 * Returns false for other types including IntegerValue.
 	 */
 	public static boolean isIntegerNumber(@NonNull Number aNumber) {
 		return (aNumber instanceof BigInteger) || (aNumber instanceof Long) || (aNumber instanceof Integer) || (aNumber instanceof Short) || (aNumber instanceof Byte);
 	}
-	
+
 	public static IntegerValue isIntegerValue(@Nullable Object value) {
 		if ((value instanceof IntegerValue) && !(value instanceof NullValue)) {
 			return (IntegerValue)value;
@@ -910,10 +909,10 @@
 			return null;
 		}
 	}
-	
+
 	/**
 	 * Return true if aNumber is a known floating point representation that can be converted to a RealValue.
-	 * Returns false for other types including RealValue. 
+	 * Returns false for other types including RealValue.
 	 */
 	public static boolean isRealNumber(@NonNull Number aNumber) {
 		return (aNumber instanceof BigDecimal) || (aNumber instanceof Double) || (aNumber instanceof Float);
@@ -938,7 +937,7 @@
 	public static boolean isUnlimited(@Nullable Object value) {
 		return (value instanceof UnlimitedValue) && !(value instanceof NullValue);
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -950,7 +949,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidInteger, anObject);
 		}
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -994,7 +993,7 @@
 			throw new InvalidValueException(e, PivotMessages.InvalidInteger, integerValue);
 		}
 	}
-    
+
 	public static @NonNull RealValue realValueOf(@Nullable Number aNumber) {
 		if (aNumber instanceof RealValue) {
 			return (RealValue)aNumber;
@@ -1005,9 +1004,9 @@
 		else if (aNumber instanceof BigInteger) {
 			return new RealValueImpl(new BigDecimal((BigInteger)aNumber));
 		}
-//		else if (aNumber instanceof Unlimited) {
-//			return new RealValueImpl(Double.POSITIVE_INFINITY);
-//		}
+		//		else if (aNumber instanceof Unlimited) {
+		//			return new RealValueImpl(Double.POSITIVE_INFINITY);
+		//		}
 		else if (aNumber != null) {
 			return new RealValueImpl(aNumber.doubleValue());
 		}
@@ -1015,7 +1014,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidReal, aNumber);
 		}
 	}
-	
+
 	public static @NonNull RealValue realValueOf(@NonNull String aValue) {
 		try {
 			return new RealValueImpl(new BigDecimal(aValue.trim()));
@@ -1024,7 +1023,7 @@
 			throw new InvalidValueException(e, PivotMessages.InvalidReal, aValue);
 		}
 	}
-    
+
 	/**
 	 * @since 1.1
 	 */
@@ -1042,23 +1041,23 @@
 		if (aValue == null) {
 			stringValue = NULL_STRING;
 		}
-		else if (aValue instanceof Value) {							// Needed for Iterable Values such as CollectionValue 
+		else if (aValue instanceof Value) {							// Needed for Iterable Values such as CollectionValue
 			stringValue = ((Value)aValue).toString();
 		}
 		else if (aValue instanceof String) {
 			stringValue = "'" + StringUtil.convertToOCLString((String)aValue) + "'";
 		}
-//		else if (aValue instanceof DomainType) {
-//			return String.valueOf(aValue);
-//		}
-//		else if (aValue instanceof DomainEnumerationLiteral) {
-//			return String.valueOf(aValue);
-//		}
-//		else if (aValue instanceof EEnumLiteral) {
-//			return String.valueOf(aValue);
-//		}
+		//		else if (aValue instanceof DomainType) {
+		//			return String.valueOf(aValue);
+		//		}
+		//		else if (aValue instanceof DomainEnumerationLiteral) {
+		//			return String.valueOf(aValue);
+		//		}
+		//		else if (aValue instanceof EEnumLiteral) {
+		//			return String.valueOf(aValue);
+		//		}
 		else if ((aValue instanceof EObject) &&
-			!((aValue instanceof Element) || (aValue instanceof EEnumLiteral))) {
+				!((aValue instanceof Element) || (aValue instanceof EEnumLiteral))) {
 			stringValue = LabelUtil.getLabel(aValue);
 		}
 		else if (aValue.getClass().isArray()) {
@@ -1070,7 +1069,7 @@
 		else {
 			stringValue = String.valueOf(aValue);
 		}
-		return stringValue != null ? stringValue : "<<null>>"; 
+		return stringValue != null ? stringValue : "<<null>>";
 	}
 
 	public static boolean throwBooleanInvalidValueException(@NonNull String string) {
@@ -1087,9 +1086,9 @@
 	public static int throwUnsupportedCompareTo(@Nullable Object left, @Nullable Object right) {
 		throw new InvalidValueException(PivotMessages.UnsupportedCompareTo,
 			left != null ? left.getClass().getName() : "null", //$NON-NLS-1$
-			right != null ? right.getClass().getName() : "null"); //$NON-NLS-1$
+				right != null ? right.getClass().getName() : "null"); //$NON-NLS-1$
 	}
-	
+
 	public static void toString(@Nullable Object value, @NonNull StringBuilder s, int sizeLimit) {
 		if (value instanceof Value) {
 			((Value)value).toString(s, sizeLimit);
@@ -1128,7 +1127,7 @@
 	public static @NonNull <T> Iterable<T> typedIterable(Class<T> elementClass, @NonNull CollectionValue collectionValue) {
 		return (Iterable<T>)collectionValue;
 	}
-	
+
 	public static @NonNull UnlimitedNaturalValue unlimitedNaturalValueOf(@Nullable BigInteger value) {
 		return (UnlimitedNaturalValue)integerValueOf(value);
 	}
@@ -1161,7 +1160,7 @@
 			throw new InvalidValueException(PivotMessages.InvalidInteger, aValue);
 		}
 	}
-	
+
 	/**
 	 * Creates an IntegerValue representation for aValue.
 	 * @param aValue the string representation of a (non-negative) integer number