Similar to querying subfolders of a parent folder into a FolderCollection, we can walk through the folder structure and examine all the items which are children of a given folder, returning an ItemCollection.
ItemCollection items = subFolder.getChildItems(); ContentItem oneContentItem; BirdWatch oneBirdWatchItem; while (items.next()) { oneContentItem = items.getContentItem(); oneBirdWatchItem = new BirdWatch(oneContentItem); _page.add(new Label("Sighting: " + oneBirdWatchItem.getSpecies() + \ oneBirdWatchItem.TYPE)); } |
Since items.getContentItem() returns a ContentItem, and it cannot be downcast to a BirdWatch item, you need to convert it to a BirdWatch item with another BirdWatch constructor before you can call BirdWatch methods, such as getSpecies(), on it. Here is an example constructor:
/* Pass this a contentItem and returns it upcasted to a BirdWatch item */ public BirdWatch(ContentItem contentItem) throws \ DataObjectNotFoundException { this(new OID(TYPE, contentItem.getID() ) ); } |
Note | |
---|---|
Realize that this is very brittle code, as it assumes that all the items in the FolderCollection are BirdWatch items. In a real, working Content Repository this might not be true. |