}
public ItemIterable<CmisObject> getChildren(OperationContext context) {
final String objectId = getObjectId();
final NavigationService navigationService = getBinding().getNavigationService();
final ObjectFactory objectFactory = getSession().getObjectFactory();
final OperationContext ctxt = new OperationContextImpl(context);
return new CollectionIterable<CmisObject>(new AbstractPageFetcher<CmisObject>(ctxt.getMaxItemsPerPage()) {
@Override
protected AbstractPageFetcher.Page<CmisObject> fetchPage(long skipCount) {
// get the children
ObjectInFolderList children = navigationService.getChildren(getRepositoryId(), objectId,
ctxt.getFilterString(), ctxt.getOrderBy(), ctxt.isIncludeAllowableActions(),
ctxt.getIncludeRelationships(), ctxt.getRenditionFilterString(), ctxt.isIncludePathSegments(),
BigInteger.valueOf(this.maxNumItems), BigInteger.valueOf(skipCount), null);
// convert objects
List<CmisObject> page = new ArrayList<CmisObject>();
List<ObjectInFolderData> childObjects = children.getObjects();
if (childObjects != null) {
for (ObjectInFolderData objectData : childObjects) {
if (objectData.getObject() != null) {
page.add(objectFactory.convertObject(objectData.getObject(), ctxt));
}
}
}
return new AbstractPageFetcher.Page<CmisObject>(page, children.getNumItems(), children.hasMoreItems());