this.baseUri = baseUri;
}
@Override
public WriteFeedCallbackResult retrieveFeedResult(final WriteFeedCallbackContext context) {
WriteFeedCallbackResult result = new WriteFeedCallbackResult();
try {
if ("Rooms".equals(context.getSourceEntitySet().getName())) {
if ("nr_Employees".equals(context.getNavigationProperty().getName())) {
HashMap<String, ODataCallback> callbacks = new HashMap<String, ODataCallback>();
for (String navPropName : context.getSourceEntitySet().getRelatedEntitySet(context.getNavigationProperty())
.getEntityType().getNavigationPropertyNames()) {
callbacks.put(navPropName, this);
}
EntityProviderWriteProperties inlineProperties =
EntityProviderWriteProperties.serviceRoot(baseUri).callbacks(callbacks).expandSelectTree(
context.getCurrentExpandSelectTreeNode()).selfLink(context.getSelfLink()).build();
result.setFeedData(dataProvider.getEmployeesData());
result.setInlineProperties(inlineProperties);
}
} else if ("Buildings".equals(context.getSourceEntitySet().getName())) {
EntityProviderWriteProperties inlineProperties =
EntityProviderWriteProperties.serviceRoot(baseUri).expandSelectTree(
context.getCurrentExpandSelectTreeNode()).selfLink(context.getSelfLink()).build();
List<Map<String, Object>> emptyData = new ArrayList<Map<String, Object>>();
result.setFeedData(emptyData);
result.setInlineProperties(inlineProperties);
}
} catch (EdmException e) {
throw new ODataRuntimeException("EdmException", e);
}
return result;