Description:You are following this example in the TIBCO JasperReports® Server Ultimate Guide v6.3.0, "Repository Service API" | [toc] |
=========== FilterCriteria filterCriteria = FilterCriteria.createFilter(); filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folderURI)); List resources = repositoryService.loadResourcesList(context, filterCriteria); =========== FilterCriteria filterCriteria = FilterCriteria.createFilter(FileResource.class); filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folderURI)); FilterElementDisjunction fileTypeDisj = filterCriteria.addDisjunction(); fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType",FileResource.TYPE_IMAGE); fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType",FileResource.TYPE_JRXML); List resources = repositoryService.loadResourcesList(context, filterCriteria);
The following code would not work when using URI:
ExecutionContext ctx = new ExecutionContextImpl(); List<String> contextAttributes = new ArrayList<>(); contextAttributes.add(ObjectPermissionService.PRIVILEGED_OPERATION); ctx.setAttributes(contextAttributes); FilterCriteria filterCriteria = FilterCriteria.createFilter(); filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter(folder.getURI())); List resources = this.repositoryService.loadResourcesList(ctx, filterCriteria);
Resolution:
Create the ParentFolderFilter by folder path instead of folder URI.
Repository Search Documentation Update
You get the list of child resources within a given folder by using filter criteria. The server expects an instance of the com.jaspersoft.jasperserver.api.metadata.view.domain.FilterCriteria class as a parameter in the method call. The list of returned resources matches the selected filter conditions. The only required condition for a FilterCriteria instance is that the returned resources’ parent folder must match a given folder. You will need to set the path to the parent folder. For example:
FilterCriteria filterCriteria = FilterCriteria.createFilter(); filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter("/examples")); List resources = repositoryService.loadResourcesList(context, filterCriteria);
The loadResourcesList method returns a list of ResourceLookup objects that contain basic resource attributes like the name and label. To retrieve the full resource definition, you must use the getResource method. You can apply further filtering to get a refined list of resources based on a given resource type or other conditions. For example, the following retrieves all the images and JRXML files in a folder:
FilterCriteria filterCriteria = FilterCriteria.createFilter(FileResource.class); filterCriteria.addFilterElement(FilterCriteria.createParentFolderFilter("/examples")); FilterElementDisjunction fileTypeDisj = filterCriteria.addDisjunction(); fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType", FileResource.TYPE_IMAGE); fileTypeDisj.addFilterElement(FilterCriteria.createPropertyEqualsFilter("fileType", FileResource.TYPE_JRXML); List resources = repositoryService.loadResourcesList(context, filterCriteria);
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now