public static Collection<SelectorOptions<GetOperationOptions>> fromRestOptions(List<String> options, List<String> include, List<String> exclude, DefinitionProcessingOption definitionProcessing, PrismContext prismContext) { if (CollectionUtils.isEmpty(options) && CollectionUtils.isEmpty(include) && CollectionUtils.isEmpty(exclude)) { if (definitionProcessing != null) { return SelectorOptions.createCollection(GetOperationOptions.createDefinitionProcessing(definitionProcessing)); } return null; } Collection<SelectorOptions<GetOperationOptions>> rv = new ArrayList<>(); GetOperationOptions rootOptions = fromRestOptions(options, definitionProcessing); if (rootOptions != null) { rv.add(SelectorOptions.create(rootOptions)); } for (ItemPath includePath : ItemPathCollectionsUtil.pathListFromStrings(include, prismContext)) { rv.add(SelectorOptions.create(prismContext.toUniformPath(includePath), GetOperationOptions.createRetrieve())); } for (ItemPath excludePath : ItemPathCollectionsUtil.pathListFromStrings(exclude, prismContext)) { rv.add(SelectorOptions.create(prismContext.toUniformPath(excludePath), GetOperationOptions.createDontRetrieve())); } // Do NOT set executionPhase here! return rv; }
public static GetOperationOptions fromRestOptions(List<String> options, DefinitionProcessingOption definitionProcessing) { if (options == null || options.isEmpty()){ if (definitionProcessing != null) { return GetOperationOptions.createDefinitionProcessing(definitionProcessing); } return null; } GetOperationOptions rv = new GetOperationOptions(); for (String option : options) { if (GetOperationOptionsType.F_RAW.getLocalPart().equals(option)) { rv.setRaw(true); } if (GetOperationOptionsType.F_NO_FETCH.getLocalPart().equals(option)) { rv.setNoFetch(true); } if (GetOperationOptionsType.F_NO_DISCOVERY.getLocalPart().equals(option)) { rv.setDoNotDiscovery(true); } if (GetOperationOptionsType.F_RESOLVE_NAMES.getLocalPart().equals(option)) { rv.setResolveNames(true); } // Do NOT set executionPhase here! } rv.setDefinitionProcessing(definitionProcessing); return rv; }