class DescriptorProperties {

	public void putIndexedFixedProperties(String key, List<String> subKeys, List<List<String>> subKeyValues) {
		checkNotNull(key);
		checkNotNull(subKeys);
		checkNotNull(subKeyValues);
		for (int idx = 0; idx < subKeyValues.size(); idx++) {
			final List<String> values = subKeyValues.get(idx);
			if (values == null || values.size() != subKeys.size()) {
				throw new ValidationException("Values must have same arity as keys.");
			}
			for (int keyIdx = 0; keyIdx < values.size(); keyIdx++) {
				put(key + '.' + idx + '.' + subKeys.get(keyIdx), values.get(keyIdx));
			}
		}
	}

	public  DescriptorProperties(boolean normalizeKeys);
	public  DescriptorProperties();

}