001package org.hl7.fhir.dstu2.terminologies;
002
003/*-
004 * #%L
005 * org.hl7.fhir.dstu2
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
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
023
024import org.hl7.fhir.dstu2.model.Meta;
025import org.hl7.fhir.dstu2.model.UriType;
026import org.hl7.fhir.dstu2.model.ValueSet;
027
028public class ValueSetUtilities {
029
030  public static ValueSet makeShareable(ValueSet vs) {
031    if (!vs.hasMeta())
032      vs.setMeta(new Meta());
033    for (UriType t : vs.getMeta().getProfile()) 
034      if (t.getValue().equals("http://hl7.org/fhir/StructureDefinition/valueset-shareable-definition"))
035        return vs;
036    vs.getMeta().getProfile().add(new UriType("http://hl7.org/fhir/StructureDefinition/valueset-shareable-definition"));
037    return vs;
038  }
039
040  public static void checkShareable(ValueSet vs) {
041    if (!vs.hasMeta())
042      throw new Error("ValueSet "+vs.getUrl()+" is not shareable");
043    for (UriType t : vs.getMeta().getProfile()) {
044      if (t.getValue().equals("http://hl7.org/fhir/StructureDefinition/valueset-shareable-definition"))
045        return;
046    }
047    throw new Error("ValueSet "+vs.getUrl()+" is not shareable");    
048  }
049
050}