static IItemFactory createItemFactory()

in src/core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/internal/parser/ItemBuilder.java [396:561]


	static IItemFactory createItemFactory(final StructContentType<IItem> et, List<ValueField> dataStructure) {
		switch (dataStructure.size()) {
		case 0:
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... values) {
					return new Item1(et, null);
				}
			};
		case 1:
			addFields(et, dataStructure, A1_0);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item1(et, v[0]);
				}
			};
		case 2:
			addFields(et, dataStructure, A1_0, A3_1);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item3(et, v[0], v[1], null);
				}
			};
		case 3:
			addFields(et, dataStructure, A1_0, A3_1, A3_2);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item3(et, v[0], v[1], v[2]);
				}
			};
		case 4:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item5(et, v[0], v[1], v[2], v[3], null);
				}
			};
		case 5:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item5(et, v[0], v[1], v[2], v[3], v[4]);
				}
			};
		case 6:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item7(et, v[0], v[1], v[2], v[3], v[4], v[5], null);
				}
			};
		case 7:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item7(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6]);
				}
			};
		case 8:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item9(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], null);
				}
			};
		case 9:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item9(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8]);
				}
			};
		case 10:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item11(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], null);
				}
			};
		case 11:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item11(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10]);
				}
			};
		case 12:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item13(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							null);
				}
			};
		case 13:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11,
					A13_12);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item13(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							v[12]);
				}
			};
		case 14:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11,
					A13_12, A15_13);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item15(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							v[12], v[13], null);
				}
			};
		case 15:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11,
					A13_12, A15_13, A15_14);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item15(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							v[12], v[13], v[14]);
				}
			};
		case 16:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11,
					A13_12, A15_13, A15_14, A17_15);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item17(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							v[12], v[13], v[14], v[15], null);
				}
			};
		case 17:
			addFields(et, dataStructure, A1_0, A3_1, A3_2, A5_3, A5_4, A7_5, A7_6, A9_7, A9_8, A11_9, A11_10, A13_11,
					A13_12, A15_13, A15_14, A17_15, A17_16);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... v) {
					return new Item17(et, v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11],
							v[12], v[13], v[14], v[15], v[16]);
				}
			};
		default:
			addFields(et, dataStructure);
			return new IItemFactory() {
				@Override
				public IItem createEvent(Object ... values) {
					return new ArrayItem(et, values.clone());
				}
			};
		}
	}