Package org.odata4j.edm

Examples of org.odata4j.edm.EdmNavigationProperty


        } else if (propValue instanceof ShortBlob) {
          propValue = ((ShortBlob) propValue).getBytes();
        }
        properties.add(OProperties.simple(propName, (EdmSimpleType<?>) prop.getType(), propValue));
      } else {
        EdmNavigationProperty navProp = eet.findNavigationProperty(propName);
        if (navProp != null) {
          List<OEntity> expandedProps = new ArrayList<OEntity>();
          try {
            if (queryInfo != null && queryInfo.expand != null && queryInfo.expand.size() > 0) {
              for (EntitySimpleProperty esp : queryInfo.expand) {
                if (esp.getPropertyName().equals(propName)) {
                  EdmEntitySet eesNavProp = metadata.getEdmEntitySet(navProp.getToRole().getRole());
                  EdmMultiplicity emNavProp = navProp.getRelationship().getEnd2().getMultiplicity();
                  if (emNavProp == EdmMultiplicity.ZERO_TO_ONE) {
                    Entity e = datastore.get((Key) propValue);
                    expandedProps.add(toOEntity(eesNavProp, e, queryInfo, propName));
                  } else if (emNavProp == EdmMultiplicity.MANY) {
                    @SuppressWarnings("unchecked")
                    Collection<Key> keys = (Collection<Key>) propValue;
                    for (Key key : keys) {
                      Entity e = datastore.get(key);
                      expandedProps.add(toOEntity(eesNavProp, e, queryInfo, propName));
                    }
                  } else {
                    throw new NotImplementedException("Property " + propName + " of type " + propValue.getClass().getName());
                  }
                }
              }
            }
          } catch (EntityNotFoundException e) {
            e.printStackTrace();
          }
          if (expandedProps.size() == 0) {
            links.add(OLinks.relatedEntity(navProp.getRelationship().getName(), propName, null));
          } else {
            links.add(OLinks.relatedEntitiesInline(navProp.getRelationship().getName(), propName, null, expandedProps));
          }
        } else {
          throw new NotImplementedException("Property " + propName + " of type " + propValue.getClass().getName());
        }
      }
View Full Code Here


        String uri = link.getHref();
        String entitySetName = e.getKind();
        String key = uri.substring(uri.lastIndexOf('('));
        EdmEntitySet ees = metadata.getEdmEntitySet(entitySetName);
        EdmEntityType eet = ees.getType();
        EdmNavigationProperty enp = eet.findNavigationProperty(link.getRelation());
        EdmMultiplicity em = enp.getRelationship().getEnd2().getMultiplicity();
        Entity entity = findEntity(enp.getToRole().getType().getName(), OEntityKey.parse(key));
        if (em == EdmMultiplicity.ZERO_TO_ONE) {
          e.setProperty(link.getRelation(), entity.getKey());
        } else {
          e.setProperty(link.getRelation(), new ArrayList<Key>(Arrays.asList(entity.getKey())));
        }
View Full Code Here

    // Support for filtering navigation properties by key
    if (propName.contains("/")) {
      propName = propName.substring(0, propName.indexOf("/"));
      EdmEntitySet ees = metadata.getEdmEntitySet(q.getKind());
      EdmEntityType eet = ees.getType();
      EdmNavigationProperty enp = eet.findNavigationProperty(propName);
      long id = Long.parseLong(propValue.toString());
      propValue = KeyFactory.createKey(enp.getToRole().getRole(), id);
    }

    Filter filter = new FilterPredicate(propName, op, propValue);
    q.setFilter(filter);
  }
View Full Code Here

  @Override
  public BaseResponse getNavProperty(String entitySetName, OEntityKey entityKey, String navProp, QueryInfo queryInfo) {
    final EdmEntitySet ees = metadata.getEdmEntitySet(entitySetName);
    EdmEntityType eet = ees.getType();
    EdmNavigationProperty enp = eet.findNavigationProperty(navProp);
    if (enp == null) {
      throw new NotFoundException("EdmNavigationProperty " + navProp + " not found.");
    }
    final EdmEntitySet eesNavProp = metadata.getEdmEntitySet(enp.getToRole().getRole());
    EdmMultiplicity relMultiplicity = enp.getRelationship().getEnd2().getMultiplicity();

    Entity entity = findEntity(entitySetName, entityKey);
    Object navPropValue = entity.getProperties().get(navProp);
    if (navPropValue == null) {
      return Responses.entities(new ArrayList<OEntity>(), eesNavProp, 0, null);
View Full Code Here

TOP

Related Classes of org.odata4j.edm.EdmNavigationProperty

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.