/** * This method validates Csdl entity sets. * It checks if entity sets are part of correct container and * entity types defined for entity sets are correct. */ private void validateCsdlEntitySet() { for (Map.Entry<FullQualifiedName, CsdlEntityContainer> container : csdlContainersMap.entrySet()) { for (CsdlEntitySet entitySet : container.getValue().getEntitySets()) { FullQualifiedName entityType = entitySet.getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(entityType))) { validateCsdlEntityTypeWithAlias(entityType); } validateNavigationBindingPaths(entitySet, container); } } }
/** * This method validates Csdl entity sets. * It checks if entity sets are part of correct container and * entity types defined for entity sets are correct. */ private void validateCsdlEntitySet() { for (Map.Entry<FullQualifiedName, CsdlEntityContainer> container : csdlContainersMap.entrySet()) { for (CsdlEntitySet entitySet : container.getValue().getEntitySets()) { FullQualifiedName entityType = entitySet.getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(entityType))) { validateCsdlEntityTypeWithAlias(entityType); } validateNavigationBindingPaths(entitySet, container); } } }
/** * @param entitySet * @return */ private CsdlEntityType getCsdlEntityTypeFromEntitySet(CsdlEntitySet entitySet) { CsdlEntityType entityType; try { entityType = entitySet.getTypeFQN() != null ? this.provider.getEntityType(new FullQualifiedName( entitySet.getTypeFQN().getFullQualifiedNameAsString())) : null; } catch (ODataException e) { throw new EdmException(e); } return entityType; }
/** * This looks for the correct entity set * when the target entity set is part of some other namespace * e.g <NavigationPropertyBinding Path="Products" Target="SomeModel.SomeContainer/SomeSet" /> * @param navBindingTarget * @return String */ private String findLastQualifiedTargetName(String navBindingTarget) { String[] targetPaths = navBindingTarget.split("/"); CsdlEntityContainer csdlContainer = csdlContainersMap.containsKey(new FullQualifiedName(targetPaths[0])) ? csdlContainersMap.get(new FullQualifiedName(targetPaths[0])) : csdlContainersMap.get(fetchCorrectNamespaceFromAlias(new FullQualifiedName(targetPaths[0]))); if (csdlContainer == null) { throw new RuntimeException("Container with FullyQualifiedName " + targetPaths[0] + " not found."); } String targetEntitySetName = targetPaths[1]; CsdlEntitySet csdlEntitySet = csdlContainer.getEntitySet(targetEntitySetName); if (csdlEntitySet == null) { throw new RuntimeException("Target Entity Set mentioned in navigationBindingProperty " + "not found in the container " + csdlContainer.getName()); } FullQualifiedName fqName = csdlEntitySet.getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(fqName))) { fqName = validateCsdlEntityTypeWithAlias(fqName); } return fqName.getFullQualifiedNameAsString(); }
/** * This looks for the correct entity set * when the target entity set is part of some other namespace * e.g <NavigationPropertyBinding Path="Products" Target="SomeModel.SomeContainer/SomeSet" /> * @param navBindingTarget * @return String */ private String findLastQualifiedTargetName(String navBindingTarget) { String[] targetPaths = navBindingTarget.split("/"); CsdlEntityContainer csdlContainer = csdlContainersMap.containsKey(new FullQualifiedName(targetPaths[0])) ? csdlContainersMap.get(new FullQualifiedName(targetPaths[0])) : csdlContainersMap.get(fetchCorrectNamespaceFromAlias(new FullQualifiedName(targetPaths[0]))); if (csdlContainer == null) { throw new RuntimeException("Container with FullyQualifiedName " + targetPaths[0] + " not found."); } String targetEntitySetName = targetPaths[1]; CsdlEntitySet csdlEntitySet = csdlContainer.getEntitySet(targetEntitySetName); if (csdlEntitySet == null) { throw new RuntimeException("Target Entity Set mentioned in navigationBindingProperty " + "not found in the container " + csdlContainer.getName()); } FullQualifiedName fqName = csdlEntitySet.getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(fqName))) { fqName = validateCsdlEntityTypeWithAlias(fqName); } return fqName.getFullQualifiedNameAsString(); }
FullQualifiedName fqName = container.getValue().getEntitySet(navBindingTarget).getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(fqName))) { fqName = validateCsdlEntityTypeWithAlias(fqName);
FullQualifiedName fqName = container.getValue().getEntitySet(navBindingTarget).getTypeFQN(); if (!(csdlEntityTypesMap.containsKey(fqName))) { fqName = validateCsdlEntityTypeWithAlias(fqName);
CsdlEntitySet csdlEntitySet = csdlEntitySets.get(i); try { CsdlEntityType csdlEntity = edmxMetadataProvider.getEntityType(csdlEntitySet.getTypeFQN()); String edmxNamespace = edmxMetadataProvider.getSchemas().get(0).getNamespace(); comModel.setNamespace(edmxNamespace); entitySet.setNavigationBindings(addlNavigations); comModel.addEntitySet(entitySet); String entityNamespace = csdlEntitySet.getTypeFQN().getNamespace(); entityNamespace = EdmxToCommonModelHelper.resolveAliasToNamespace(edmxMetadataProvider, entityNamespace); refInfo.setName(csdlEntitySet.getTypeFQN().getName()); refInfo.setNamespace(entityNamespace); refInfo.setType(ENTITYTYPE);