@Override
 public Map<String, EdmProperty> getProperties() {
   if (properties == null) {
     properties = new LinkedHashMap<String, EdmProperty>();
     for (CommonProperty property : complexType.getProperties()) {
       properties.put(property.getName(), new EdmPropertyImpl(edm, property));
     }
   }
   return properties;
 }
 @Override
 public Map<String, EdmNavigationProperty> getNavigationProperties() {
   if (navigationProperties == null) {
     navigationProperties = new LinkedHashMap<String, EdmNavigationProperty>();
     for (CommonNavigationProperty navigationProperty : complexType.getNavigationProperties()) {
       if (navigationProperty instanceof NavigationProperty) {
         navigationProperties.put(
             navigationProperty.getName(),
             new EdmNavigationPropertyImpl(edm, (NavigationProperty) navigationProperty));
       }
     }
   }
   return navigationProperties;
 }