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

com.spotify.missinglink.datamodel.FieldDependencyBuilder Maven / Gradle / Ivy

The newest version!
package com.spotify.missinglink.datamodel;

import io.norberg.automatter.AutoMatter;
import javax.annotation.Generated;

@Generated("io.norberg.automatter.processor.AutoMatterProcessor")
public final class FieldDependencyBuilder {
  private ClassTypeDescriptor fromClass;

  private MethodDescriptor fromMethod;

  private int fromLineNumber;

  private ClassTypeDescriptor targetClass;

  private TypeDescriptor fieldType;

  private String fieldName;

  public FieldDependencyBuilder() {
  }

  private FieldDependencyBuilder(FieldDependency v) {
    this.fromClass = v.fromClass();
    this.fromMethod = v.fromMethod();
    this.fromLineNumber = v.fromLineNumber();
    this.targetClass = v.targetClass();
    this.fieldType = v.fieldType();
    this.fieldName = v.fieldName();
  }

  private FieldDependencyBuilder(FieldDependencyBuilder v) {
    this.fromClass = v.fromClass;
    this.fromMethod = v.fromMethod;
    this.fromLineNumber = v.fromLineNumber;
    this.targetClass = v.targetClass;
    this.fieldType = v.fieldType;
    this.fieldName = v.fieldName;
  }

  public ClassTypeDescriptor fromClass() {
    return fromClass;
  }

  public FieldDependencyBuilder fromClass(ClassTypeDescriptor fromClass) {
    if (fromClass == null) {
      throw new NullPointerException("fromClass");
    }
    this.fromClass = fromClass;
    return this;
  }

  public MethodDescriptor fromMethod() {
    return fromMethod;
  }

  public FieldDependencyBuilder fromMethod(MethodDescriptor fromMethod) {
    if (fromMethod == null) {
      throw new NullPointerException("fromMethod");
    }
    this.fromMethod = fromMethod;
    return this;
  }

  public int fromLineNumber() {
    return fromLineNumber;
  }

  public FieldDependencyBuilder fromLineNumber(int fromLineNumber) {
    this.fromLineNumber = fromLineNumber;
    return this;
  }

  public ClassTypeDescriptor targetClass() {
    return targetClass;
  }

  public FieldDependencyBuilder targetClass(ClassTypeDescriptor targetClass) {
    if (targetClass == null) {
      throw new NullPointerException("targetClass");
    }
    this.targetClass = targetClass;
    return this;
  }

  public TypeDescriptor fieldType() {
    return fieldType;
  }

  public FieldDependencyBuilder fieldType(TypeDescriptor fieldType) {
    if (fieldType == null) {
      throw new NullPointerException("fieldType");
    }
    this.fieldType = fieldType;
    return this;
  }

  public String fieldName() {
    return fieldName;
  }

  public FieldDependencyBuilder fieldName(String fieldName) {
    if (fieldName == null) {
      throw new NullPointerException("fieldName");
    }
    this.fieldName = fieldName;
    return this;
  }

  public FieldDependency build() {
    return new Value(fromClass, fromMethod, fromLineNumber, targetClass, fieldType, fieldName);
  }

  public static FieldDependencyBuilder from(FieldDependency v) {
    return new FieldDependencyBuilder(v);
  }

  public static FieldDependencyBuilder from(FieldDependencyBuilder v) {
    return new FieldDependencyBuilder(v);
  }

  private static final class Value implements FieldDependency {
    private final ClassTypeDescriptor fromClass;

    private final MethodDescriptor fromMethod;

    private final int fromLineNumber;

    private final ClassTypeDescriptor targetClass;

    private final TypeDescriptor fieldType;

    private final String fieldName;

    private Value(@AutoMatter.Field("fromClass") ClassTypeDescriptor fromClass, @AutoMatter.Field("fromMethod") MethodDescriptor fromMethod, @AutoMatter.Field("fromLineNumber") int fromLineNumber, @AutoMatter.Field("targetClass") ClassTypeDescriptor targetClass, @AutoMatter.Field("fieldType") TypeDescriptor fieldType, @AutoMatter.Field("fieldName") String fieldName) {
      if (fromClass == null) {
        throw new NullPointerException("fromClass");
      }
      if (fromMethod == null) {
        throw new NullPointerException("fromMethod");
      }
      if (targetClass == null) {
        throw new NullPointerException("targetClass");
      }
      if (fieldType == null) {
        throw new NullPointerException("fieldType");
      }
      if (fieldName == null) {
        throw new NullPointerException("fieldName");
      }
      this.fromClass = fromClass;
      this.fromMethod = fromMethod;
      this.fromLineNumber = fromLineNumber;
      this.targetClass = targetClass;
      this.fieldType = fieldType;
      this.fieldName = fieldName;
    }

    @AutoMatter.Field
    @Override
    public ClassTypeDescriptor fromClass() {
      return fromClass;
    }

    @AutoMatter.Field
    @Override
    public MethodDescriptor fromMethod() {
      return fromMethod;
    }

    @AutoMatter.Field
    @Override
    public int fromLineNumber() {
      return fromLineNumber;
    }

    @AutoMatter.Field
    @Override
    public ClassTypeDescriptor targetClass() {
      return targetClass;
    }

    @AutoMatter.Field
    @Override
    public TypeDescriptor fieldType() {
      return fieldType;
    }

    @AutoMatter.Field
    @Override
    public String fieldName() {
      return fieldName;
    }

    public FieldDependencyBuilder builder() {
      return new FieldDependencyBuilder(this);
    }

    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (!(o instanceof FieldDependency)) {
        return false;
      }
      final FieldDependency that = (FieldDependency) o;
      if (fromClass != null ? !fromClass.equals(that.fromClass()) : that.fromClass() != null) {
        return false;
      }
      if (fromMethod != null ? !fromMethod.equals(that.fromMethod()) : that.fromMethod() != null) {
        return false;
      }
      if (fromLineNumber != that.fromLineNumber()) {
        return false;
      }
      if (targetClass != null ? !targetClass.equals(that.targetClass()) : that.targetClass() != null) {
        return false;
      }
      if (fieldType != null ? !fieldType.equals(that.fieldType()) : that.fieldType() != null) {
        return false;
      }
      if (fieldName != null ? !fieldName.equals(that.fieldName()) : that.fieldName() != null) {
        return false;
      }
      return true;
    }

    @Override
    public int hashCode() {
      int result = 1;
      long temp;
      result = 31 * result + (fromClass != null ? fromClass.hashCode() : 0);
      result = 31 * result + (fromMethod != null ? fromMethod.hashCode() : 0);
      result = 31 * result + fromLineNumber;
      result = 31 * result + (targetClass != null ? targetClass.hashCode() : 0);
      result = 31 * result + (fieldType != null ? fieldType.hashCode() : 0);
      result = 31 * result + (fieldName != null ? fieldName.hashCode() : 0);
      return result;
    }

    @Override
    public String toString() {
      return "FieldDependency{" +
      "fromClass=" + fromClass +
      ", fromMethod=" + fromMethod +
      ", fromLineNumber=" + fromLineNumber +
      ", targetClass=" + targetClass +
      ", fieldType=" + fieldType +
      ", fieldName=" + fieldName +
      '}';
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy