public static NeptuneCsvHeader parse()

in src/main/java/software/amazon/neptune/csv2rdf/NeptuneCsvHeader.java [101:140]


	public static NeptuneCsvHeader parse(@NonNull CSVRecord record) {

		Set<String> names = new HashSet<>();
		Map<String, Integer> system = new HashMap<>();
		List<NeptuneCsvUserDefinedColumn> user = new ArrayList<>();

		for (int i = 0; i < record.size(); ++i) {
			String name = record.get(i);

			if (name == null) {
				throw new Csv2RdfException("Empty column header encountered.");
			}

			String normalized = name.trim().toLowerCase();

			if (SYSTEM_COLUMNS.contains(normalized)) {
				system.put(normalized, i);
			} else if (normalized.startsWith(SYSTEM_COLUMN_PREFIX)) {
				throw new Csv2RdfException("Invalid system column encountered: " + normalized);
			} else {
				NeptuneCsvUserDefinedColumn column = NeptuneCsvUserDefinedColumn.parse(name);
				column.setIndex(i);
				user.add(column);
				normalized = column.getName();
			}

			if (!names.add(normalized)) {
				throw new Csv2RdfException("Found duplicate field: " + name);
			}
		}

		NeptuneCsvHeader header;
		if (system.get(FROM) != null || system.get(TO) != null) {
			header = new NeptuneCsvEdgeHeader(system.get(ID), system.get(FROM), system.get(TO), system.get(LABEL),
					user);
		} else {
			header = new NeptuneCsvVertexHeader(system.get(ID), system.get(LABEL), user);
		}
		return header;
	}