@SuppressWarnings("unchecked") @Override public MappingContextFactory<S> build() { if (parent != null) { throw new IllegalStateException(); } MappingContextFactory<S> context; ArrayList<MappingContextFactoryBuilder<S, K>> builders = new ArrayList<MappingContextFactoryBuilder<S, K>>(); addAllBuilders(builders); if (suppliers.isEmpty()) { context = MappingContext.EMPTY_FACTORY; } else { context = new ValuedMappingContextFactory<S>(suppliers); } if (hasKeys(builders)) { KeyDefinitionBuilder<S, K>[] keyDefinitionsBuilder = new KeyDefinitionBuilder[builders.get(builders.size() - 1).currentIndex + 1]; for (int i = 0; i < builders.size(); i++) { MappingContextFactoryBuilder<S, K> builder = builders.get(i); populateKey(keyDefinitionsBuilder, builders, builder); } KeyDefinition<S, K>[] keyDefinitions = KeyDefinitionBuilder.<S, K>toKeyDefinitions(keyDefinitionsBuilder); KeyDefinition<S, K> rootKeyDefinition = keyDefinitions[0]; context = new BreakDetectorMappingContextFactory<S>(rootKeyDefinition, keyDefinitions, context); } return context; }
@SuppressWarnings("unchecked") @Override public MappingContextFactory<S> build() { if (parent != null) { throw new IllegalStateException(); } MappingContextFactory<S> context; ArrayList<MappingContextFactoryBuilder<S, K>> builders = new ArrayList<MappingContextFactoryBuilder<S, K>>(); addAllBuilders(builders); if (suppliers.isEmpty()) { context = MappingContext.EMPTY_FACTORY; } else { context = new ValuedMappingContextFactory<S>(suppliers); } if (hasKeys(builders)) { KeyDefinitionBuilder<S, K>[] keyDefinitionsBuilder = new KeyDefinitionBuilder[builders.get(builders.size() - 1).currentIndex + 1]; for (int i = 0; i < builders.size(); i++) { MappingContextFactoryBuilder<S, K> builder = builders.get(i); populateKey(keyDefinitionsBuilder, builders, builder); } KeyDefinition<S, K>[] keyDefinitions = KeyDefinitionBuilder.<S, K>toKeyDefinitions(keyDefinitionsBuilder); KeyDefinition<S, K> rootKeyDefinition = keyDefinitions[0]; context = new BreakDetectorMappingContextFactory<S>(rootKeyDefinition, keyDefinitions, context); } return context; }
MappingContextFactoryBuilder<S, K> potentialParent = builders.get(i); if (potentialParent.currentIndex == parentIndex) { parent = populateKey(keyDefinitions, builders, potentialParent); break;
MappingContextFactoryBuilder<S, K> potentialParent = builders.get(i); if (potentialParent.currentIndex == parentIndex) { parent = populateKey(keyDefinitions, builders, potentialParent); break;