public MetaData getMetaData()

in src/main/java/com/univocity/parsers/common/record/RecordMetaDataImpl.java [71:106]


	public MetaData getMetaData(int index) {
		if (indexMap == null || indexMap.length < index + 1 || indexMap[index] == null) {
			synchronized (this) {
				if (indexMap == null || indexMap.length < index + 1 || indexMap[index] == null) {
					int startFrom = 0;
					int lastIndex = index;

					if (indexMap != null) {
						startFrom = indexMap.length;
						indexMap = Arrays.copyOf(indexMap, index + 1);
					} else {
						String[] headers = context.headers();
						if (headers != null && lastIndex < headers.length) {
							lastIndex = headers.length;
						}

						int[] indexes = context.extractedFieldIndexes();
						if (indexes != null) {
							for (int i = 0; i < indexes.length; i++) {
								if (lastIndex < indexes[i]) {
									lastIndex = indexes[i];
								}
							}
						}

						indexMap = new MetaData[lastIndex + 1];
					}

					for (int i = startFrom; i < lastIndex + 1; i++) {
						indexMap[i] = new MetaData(i);
					}
				}
			}
		}
		return indexMap[index];
	}