package ca.uhn.fhir.tinder.model; import java.util.ArrayList; import java.util.List; import ca.uhn.fhir.tinder.model.SearchParameter.Include; import edu.emory.mathcs.backport.java.util.Collections; public abstract class BaseRootType extends BaseElement { private String myId; private String myProfile; private List<SearchParameter> mySearchParameters; private List<Include> myIncludes = new ArrayList<SearchParameter.Include>(); public String getId() { return myId; } public String getProfile() { return myProfile; } public List<SearchParameter> getSearchParameters() { if (mySearchParameters == null) { mySearchParameters = new ArrayList<SearchParameter>(); } return java.util.Collections.unmodifiableList(mySearchParameters); } public List<SearchParameter> getSearchParametersWithoutComposite() { ArrayList<SearchParameter> retVal = new ArrayList<SearchParameter>(); for (SearchParameter next : getSearchParameters()) { if (!next.getType().equals("composite")) { retVal.add(next); } } return retVal; } public void setId(String theId) { myId = theId; } public void setProfile(String theProfile) { myProfile = theProfile; } public ArrayList<SearchParameter> getSearchParametersResource() { ArrayList<SearchParameter> retVal = new ArrayList<SearchParameter>(); for (SearchParameter next : getSearchParameters()) { if (next.getType().equals("reference")) { retVal.add(next); } } return retVal; } public void addSearchParameter(SearchParameter theParam) { getSearchParameters(); mySearchParameters.add(theParam); List<Include> includes = theParam.getPaths(); for (Include include : includes) { if (myIncludes.contains(include)==false) { myIncludes.add(include); } } } public List<SearchParameter.Include> getIncludes() { Collections.sort(myIncludes); return myIncludes; } }