changed toListOfResources to send IBaseResource as Type instead of null
This commit is contained in:
parent
a5e7ea16ae
commit
7f45660a15
|
@ -51,7 +51,7 @@ public class BundleUtil {
|
||||||
BaseRuntimeChildDefinition relChild = relDef.getChildByName("relation");
|
BaseRuntimeChildDefinition relChild = relDef.getChildByName("relation");
|
||||||
List<IBase> relValues = relChild.getAccessor().getValues(nextLink);
|
List<IBase> relValues = relChild.getAccessor().getValues(nextLink);
|
||||||
for (IBase next : relValues) {
|
for (IBase next : relValues) {
|
||||||
IPrimitiveType<?> nextValue = (IPrimitiveType<?>)next;
|
IPrimitiveType<?> nextValue = (IPrimitiveType<?>) next;
|
||||||
if (theLinkRelation.equals(nextValue.getValueAsString())) {
|
if (theLinkRelation.equals(nextValue.getValueAsString())) {
|
||||||
isRightRel = true;
|
isRightRel = true;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ public class BundleUtil {
|
||||||
BaseRuntimeChildDefinition urlChild = linkDef.getChildByName("url");
|
BaseRuntimeChildDefinition urlChild = linkDef.getChildByName("url");
|
||||||
List<IBase> values = urlChild.getAccessor().getValues(nextLink);
|
List<IBase> values = urlChild.getAccessor().getValues(nextLink);
|
||||||
for (IBase nextUrl : values) {
|
for (IBase nextUrl : values) {
|
||||||
IPrimitiveType<?> nextValue = (IPrimitiveType<?>)nextUrl;
|
IPrimitiveType<?> nextValue = (IPrimitiveType<?>) nextUrl;
|
||||||
if (isNotBlank(nextValue.getValueAsString())) {
|
if (isNotBlank(nextValue.getValueAsString())) {
|
||||||
return nextValue.getValueAsString();
|
return nextValue.getValueAsString();
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ public class BundleUtil {
|
||||||
|
|
||||||
for (IBase nextEntryValue : requestChild.getAccessor().getValues(nextEntry)) {
|
for (IBase nextEntryValue : requestChild.getAccessor().getValues(nextEntry)) {
|
||||||
for (IBase nextUrlValue : urlChild.getAccessor().getValues(nextEntryValue)) {
|
for (IBase nextUrlValue : urlChild.getAccessor().getValues(nextEntryValue)) {
|
||||||
url = ((IPrimitiveType<String>)nextUrlValue).getValue();
|
url = ((IPrimitiveType<String>) nextUrlValue).getValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ public class BundleUtil {
|
||||||
|
|
||||||
BaseRuntimeChildDefinition resourceChild = entryChildElem.getChildByName("resource");
|
BaseRuntimeChildDefinition resourceChild = entryChildElem.getChildByName("resource");
|
||||||
BaseRuntimeChildDefinition requestChild = entryChildElem.getChildByName("request");
|
BaseRuntimeChildDefinition requestChild = entryChildElem.getChildByName("request");
|
||||||
BaseRuntimeElementCompositeDefinition<?> requestElem = (BaseRuntimeElementCompositeDefinition<?>) requestChild.getChildByName("request");
|
BaseRuntimeElementCompositeDefinition<?> requestElem = (BaseRuntimeElementCompositeDefinition<?>) requestChild.getChildByName("request");
|
||||||
BaseRuntimeChildDefinition urlChild = requestElem.getChildByName("url");
|
BaseRuntimeChildDefinition urlChild = requestElem.getChildByName("url");
|
||||||
BaseRuntimeChildDefinition methodChild = requestElem.getChildByName("method");
|
BaseRuntimeChildDefinition methodChild = requestElem.getChildByName("method");
|
||||||
|
|
||||||
|
@ -165,10 +165,10 @@ public class BundleUtil {
|
||||||
}
|
}
|
||||||
for (IBase nextRequest : requestChild.getAccessor().getValues(nextEntry)) {
|
for (IBase nextRequest : requestChild.getAccessor().getValues(nextEntry)) {
|
||||||
for (IBase nextUrl : urlChild.getAccessor().getValues(nextRequest)) {
|
for (IBase nextUrl : urlChild.getAccessor().getValues(nextRequest)) {
|
||||||
url = ((IPrimitiveType<?>)nextUrl).getValueAsString();
|
url = ((IPrimitiveType<?>) nextUrl).getValueAsString();
|
||||||
}
|
}
|
||||||
for (IBase nextUrl : methodChild.getAccessor().getValues(nextRequest)) {
|
for (IBase nextUrl : methodChild.getAccessor().getValues(nextRequest)) {
|
||||||
String methodString = ((IPrimitiveType<?>)nextUrl).getValueAsString();
|
String methodString = ((IPrimitiveType<?>) nextUrl).getValueAsString();
|
||||||
if (isNotBlank(methodString)) {
|
if (isNotBlank(methodString)) {
|
||||||
requestType = RequestTypeEnum.valueOf(methodString);
|
requestType = RequestTypeEnum.valueOf(methodString);
|
||||||
}
|
}
|
||||||
|
@ -190,7 +190,7 @@ public class BundleUtil {
|
||||||
* Extract all of the resources from a given bundle
|
* Extract all of the resources from a given bundle
|
||||||
*/
|
*/
|
||||||
public static List<IBaseResource> toListOfResources(FhirContext theContext, IBaseBundle theBundle) {
|
public static List<IBaseResource> toListOfResources(FhirContext theContext, IBaseBundle theBundle) {
|
||||||
return toListOfResourcesOfType(theContext, theBundle, null);
|
return toListOfResourcesOfType(theContext, theBundle, IBaseResource.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -209,36 +209,36 @@ public class BundleUtil {
|
||||||
BaseRuntimeChildDefinition resourceChild = entryChildElem.getChildByName("resource");
|
BaseRuntimeChildDefinition resourceChild = entryChildElem.getChildByName("resource");
|
||||||
for (IBase nextEntry : entries) {
|
for (IBase nextEntry : entries) {
|
||||||
for (IBase next : resourceChild.getAccessor().getValues(nextEntry)) {
|
for (IBase next : resourceChild.getAccessor().getValues(nextEntry)) {
|
||||||
if (!theTypeToInclude.isAssignableFrom(next.getClass())) {
|
if (theTypeToInclude.isAssignableFrom(next.getClass())) {
|
||||||
continue;
|
retVal.add((T) next);
|
||||||
}
|
}
|
||||||
retVal.add((T) next);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class BundleEntryParts
|
public static class BundleEntryParts {
|
||||||
{
|
|
||||||
private final RequestTypeEnum myRequestType;
|
private final RequestTypeEnum myRequestType;
|
||||||
private final IBaseResource myResource;
|
private final IBaseResource myResource;
|
||||||
private final String myUrl;
|
private final String myUrl;
|
||||||
|
|
||||||
BundleEntryParts(RequestTypeEnum theRequestType, String theUrl, IBaseResource theResource) {
|
BundleEntryParts(RequestTypeEnum theRequestType, String theUrl, IBaseResource theResource) {
|
||||||
super();
|
super();
|
||||||
myRequestType = theRequestType;
|
myRequestType = theRequestType;
|
||||||
myUrl = theUrl;
|
myUrl = theUrl;
|
||||||
myResource = theResource;
|
myResource = theResource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestTypeEnum getRequestType() {
|
public RequestTypeEnum getRequestType() {
|
||||||
return myRequestType;
|
return myRequestType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IBaseResource getResource() {
|
public IBaseResource getResource() {
|
||||||
return myResource;
|
return myResource;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
return myUrl;
|
return myUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,13 @@ package ca.uhn.fhir.util;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import org.hl7.fhir.r4.model.Bundle;
|
import org.hl7.fhir.r4.model.Bundle;
|
||||||
|
import org.hl7.fhir.r4.model.Patient;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class BundleUtilTest {
|
public class BundleUtilTest {
|
||||||
|
|
||||||
private static FhirContext ourCtx = FhirContext.forR4();
|
private static FhirContext ourCtx = FhirContext.forR4();
|
||||||
|
@ -38,6 +41,17 @@ public class BundleUtilTest {
|
||||||
Assert.assertEquals(null, BundleUtil.getTotal(ourCtx, b));
|
Assert.assertEquals(null, BundleUtil.getTotal(ourCtx, b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void toListOfResourcesOfTypeTest() {
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
bundle.addEntry(new Bundle.BundleEntryComponent().setResource(new Patient()));
|
||||||
|
}
|
||||||
|
List<Patient> list = BundleUtil.toListOfResourcesOfType(ourCtx, bundle, Patient.class);
|
||||||
|
Assert.assertEquals(5, list.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public static void afterClassClearContext() {
|
public static void afterClassClearContext() {
|
||||||
TestUtil.clearAllStaticFieldsForUnitTest();
|
TestUtil.clearAllStaticFieldsForUnitTest();
|
||||||
|
|
Loading…
Reference in New Issue