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

io.github.linuxforhealth.core.expression.SimpleEvaluationResult Maven / Gradle / Ivy

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

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.google.common.base.Preconditions;
import io.github.linuxforhealth.api.EvaluationResult;
import io.github.linuxforhealth.api.ResourceValue;
import io.github.linuxforhealth.core.data.DataTypeUtil;


/**
 * Represents value returned after the expression is evaluated.
 * 
 *
 * @author pbhallam
 * @param  The value to be evaluated
 * 
 */
public class SimpleEvaluationResult implements EvaluationResult {

  private UUID groupId;
  private V value;
  private Class klass;
  private String klassName;
  private List additionalResources;


  public SimpleEvaluationResult(V value) {
    this(value, new ArrayList<>());
  }



  public SimpleEvaluationResult(V value, List additionalResources,
      UUID groupId) {
    Preconditions.checkArgument(value != null, "value cannot be null");
    Preconditions.checkArgument(additionalResources != null, "additionalResources cannot be null");
    this.value = value;

    this.klass = value.getClass();
    this.klassName = DataTypeUtil.getDataType(value);
    this.additionalResources = new ArrayList<>();
    this.additionalResources.addAll(additionalResources);
    this.groupId = groupId;

  }


  public SimpleEvaluationResult(V value, List additionalResources) {
    Preconditions.checkArgument(value != null, "value cannot be null");
    Preconditions.checkArgument(additionalResources != null, "additionalResources cannot be null");
    this.value = value;

    this.klass = value.getClass();
    this.klassName = DataTypeUtil.getDataType(value);
    this.additionalResources = new ArrayList<>();
    this.additionalResources.addAll(additionalResources);

  }

  @Override
  public V getValue() {
    return value;
  }

  @Override
  public String toString() {
    if (value != null) {
      return "Type: [" + this.klassName + "] Value : [" + value.toString() + "]";
    } else {
      return "";
    }
  }

  @Override
  public Class getValueType() {
    return klass;
  }


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

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

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

  public UUID getGroupId() {
    return groupId;
  }



}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy