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

hydra.langs.scala.meta.Template Maven / Gradle / Ivy

package hydra.langs.scala.meta;

import java.io.Serializable;

public class Template implements Serializable {
  public static final hydra.core.Name NAME = new hydra.core.Name("hydra/langs/scala/meta.Template");
  
  public final java.util.List early;
  
  public final java.util.List inits;
  
  public final hydra.langs.scala.meta.Self self;
  
  public final java.util.List stats;
  
  public Template (java.util.List early, java.util.List inits, hydra.langs.scala.meta.Self self, java.util.List stats) {
    this.early = early;
    this.inits = inits;
    this.self = self;
    this.stats = stats;
  }
  
  @Override
  public boolean equals(Object other) {
    if (!(other instanceof Template)) {
      return false;
    }
    Template o = (Template) (other);
    return early.equals(o.early) && inits.equals(o.inits) && self.equals(o.self) && stats.equals(o.stats);
  }
  
  @Override
  public int hashCode() {
    return 2 * early.hashCode() + 3 * inits.hashCode() + 5 * self.hashCode() + 7 * stats.hashCode();
  }
  
  public Template withEarly(java.util.List early) {
    return new Template(early, inits, self, stats);
  }
  
  public Template withInits(java.util.List inits) {
    return new Template(early, inits, self, stats);
  }
  
  public Template withSelf(hydra.langs.scala.meta.Self self) {
    return new Template(early, inits, self, stats);
  }
  
  public Template withStats(java.util.List stats) {
    return new Template(early, inits, self, stats);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy