public ListItem getParentListItem() { int minElements = 1; Iterator objectIterator = getObjects().iterator(); while (objectIterator.hasNext()) { SoapClientObject obj = (SoapClientObject) objectIterator.next(); Iterator refIterator = obj.getReferences().iterator(); while (refIterator.hasNext()) { SoapClientObjectReference ref = (SoapClientObjectReference) refIterator.next(); ArrayList<SoapClientObjectReferencePath> pathElements = (ArrayList<SoapClientObjectReferencePath>) ref.getPathElements(); if (pathElements.size() >= minElements) { SoapClientObjectReferencePath parent = pathElements.get(pathElements.size() - 1); RemoteListItem parentItem = new RemoteListItem(); parentItem.setRefId(parent.getRefId()); parentItem.setType(parent.getType()); parentItem.setTitle(parent.getTitle()); return parentItem; } } } return null; }
/** * Get list of path elements * * @param includeLeaf * @return */ public List<SoapClientObjectReferencePath> getFirstPath(boolean includeLeaf) { List<SoapClientObjectReferencePath> pathList = new ArrayList<SoapClientObjectReferencePath>(); // choose first object for (SoapClientObject obj : getObjects()) { // choose first reference for (SoapClientObjectReference ref : obj.getReferences()) { pathList = ref.getPathElements(); break; } break; } // Append a leaf the leaf node as path element if desired if (includeLeaf) { for (SoapClientObject obj : getObjects()) { for (SoapClientObjectReference ref : obj.getReferences()) { SoapClientObjectReferencePath leaf = new SoapClientObjectReferencePath(); if (pathList.size() < 1) { leaf.setTitle("Repository"); } else { leaf.setTitle(obj.getTitle()); } leaf.setRefId(ref.getRefId()); leaf.setType(obj.getType()); pathList.add(leaf); break; } break; } } return pathList; }