All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hl7.fhir.r4b.utils.structuremap.Variables Maven / Gradle / Ivy

The newest version!
package org.hl7.fhir.r4b.utils.structuremap;

import org.hl7.fhir.r4b.model.Base;
import org.hl7.fhir.utilities.CommaSeparatedStringBuilder;

import java.util.ArrayList;
import java.util.List;

public class Variables {
  private List list = new ArrayList();

  public void add(VariableMode mode, String name, Base object) {
    Variable vv = null;
    for (Variable v : list)
      if ((v.getMode() == mode) && v.getName().equals(name))
        vv = v;
    if (vv != null)
      list.remove(vv);
    list.add(new Variable(mode, name, object));
  }

  public Variables copy() {
    Variables result = new Variables();
    result.list.addAll(list);
    return result;
  }

  public Base get(VariableMode mode, String name) {
    for (Variable v : list)
      if ((v.getMode() == mode) && v.getName().equals(name))
        return v.getObject();
    return null;
  }

  public String summary() {
    CommaSeparatedStringBuilder s = new CommaSeparatedStringBuilder();
    CommaSeparatedStringBuilder t = new CommaSeparatedStringBuilder();
    CommaSeparatedStringBuilder sh = new CommaSeparatedStringBuilder();
    for (Variable v : list)
      switch (v.getMode()) {
      case INPUT:
        s.append(v.summary());
        break;
      case OUTPUT:
        t.append(v.summary());
        break;
      case SHARED:
        sh.append(v.summary());
        break;
      }
    return "source variables [" + s.toString() + "], target variables [" + t.toString() + "], shared variables ["
        + sh.toString() + "]";
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy