001package ca.uhn.fhir.test.utilities;
002
003/*-
004 * #%L
005 * HAPI FHIR Test Utilities
006 * %%
007 * Copyright (C) 2014 - 2023 Smile CDR, Inc.
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import ca.uhn.fhir.context.FhirContext;
024import ca.uhn.fhir.util.BundleUtil;
025import org.hl7.fhir.instance.model.api.IBaseBundle;
026import org.hl7.fhir.instance.model.api.IBaseResource;
027import org.hl7.fhir.instance.model.api.IIdType;
028
029import java.util.ArrayList;
030import java.util.List;
031import java.util.stream.Collectors;
032
033public class SearchTestUtil {
034
035        private SearchTestUtil() {
036        }
037
038        public static List<IIdType> toUnqualifiedVersionlessIds(IBaseBundle theFound) {
039                FhirContext ctx = FhirContext.forCached(theFound.getStructureFhirVersionEnum());
040
041                List<IIdType> retVal = new ArrayList<>();
042                for (IBaseResource next : BundleUtil.toListOfResources(ctx, theFound)) {
043                        if (next != null) {
044                                retVal.add(next.getIdElement().toUnqualifiedVersionless());
045                        }
046                }
047                return retVal;
048        }
049
050        public static List<String> toUnqualifiedVersionlessIdValues(IBaseBundle theFound) {
051                return toUnqualifiedVersionlessIds(theFound)
052                        .stream()
053                        .map(t -> t.getValue())
054                        .collect(Collectors.toList());
055        }
056
057}