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

io.github.linuxforhealth.core.resource.ResourceResult Maven / Gradle / Ivy

/*
 * (C) Copyright IBM Corp. 2020
 *
 * SPDX-License-Identifier: Apache-2.0
 */
package io.github.linuxforhealth.core.resource;

import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Preconditions;
import io.github.linuxforhealth.api.EvaluationResult;
import io.github.linuxforhealth.api.ResourceValue;
import io.github.linuxforhealth.hl7.resource.PendingExpressionState;

public class ResourceResult implements EvaluationResult {

  private String groupId;
  private ResourceValue resource;
  private List additionalResources;
  private PendingExpressionState pendingExpressions;

  public ResourceResult(ResourceValue resource, List additionalResources) {
    this(resource, additionalResources, null);
  }


  public ResourceResult(ResourceValue resource, List additionalResources,
      String groupId) {
    this(resource, additionalResources, groupId,
        PendingExpressionState.emptyPendingExpressionState());
  }


  public ResourceResult(ResourceValue resource, List additionalResources,
      String groupId, PendingExpressionState pendingExpressions) {
    Preconditions.checkArgument(resource != null, "resources cannot be null.");
    Preconditions.checkArgument(additionalResources != null, "additionalResources cannot be null.");
    this.resource = resource;
    this.additionalResources = new ArrayList<>(additionalResources);
    this.groupId = groupId;
    this.pendingExpressions = pendingExpressions;
  }


  @Override
  public List getAdditionalResources() {
    return new ArrayList<>(additionalResources);
  }

  public String getGroupId() {
    return groupId;
  }


  @Override
  public ResourceValue getValue() {
    return this.resource;
  }


  @Override
  public String getIdentifier() {
    return null;
  }


  @Override
  public Class getValueType() {
    return ResourceValue.class;
  }


  @Override
  public boolean isEmpty() {
    return (this.resource == null || this.resource.isEmpty());
  }


  public PendingExpressionState getPendingExpressions() {
    return pendingExpressions;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy