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

com.obsidiandynamics.blackstrom.model.Response Maven / Gradle / Ivy

The newest version!
package com.obsidiandynamics.blackstrom.model;

import org.apache.commons.lang3.builder.*;

import com.obsidiandynamics.func.*;

public final class Response {
  private final String cohort;
  private final Intent intent;
  private final Object metadata;
  
  public Response(String cohort, Intent intent, Object metadata) {
    this.cohort = cohort;
    this.intent = intent;
    this.metadata = metadata;
  }

  public String getCohort() {
    return cohort;
  }

  public Intent getIntent() {
    return intent;
  }

  public  T getMetadata() {
    return Classes.cast(metadata);
  }
  
  @Override
  public int hashCode() {
    return new HashCodeBuilder()
        .append(cohort)
        .append(intent)
        .append(metadata)
        .toHashCode();
  }
  
  @Override
  public boolean equals(Object obj) {
    if (this == obj) {
      return true;
    } else if (obj instanceof Response) {
      final Response that = (Response) obj;
      return new EqualsBuilder()
          .append(cohort, that.cohort)
          .append(intent, that.intent)
          .append(metadata, that.metadata)
          .isEquals();
    } else {
      return false;
    }
  }

  @Override
  public String toString() {
    return Response.class.getSimpleName() + " [cohort=" + cohort + ", intent=" + intent + ", metadata=" + metadata + "]";
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy