hydra.langs.java.syntax.ConstructorDeclarator Maven / Gradle / Ivy
package hydra.langs.java.syntax;
import java.io.Serializable;
public class ConstructorDeclarator implements Serializable {
public static final hydra.core.Name NAME = new hydra.core.Name("hydra/langs/java/syntax.ConstructorDeclarator");
public final java.util.List parameters;
public final hydra.langs.java.syntax.SimpleTypeName name;
public final java.util.Optional receiverParameter;
public final java.util.List formalParameters;
public ConstructorDeclarator (java.util.List parameters, hydra.langs.java.syntax.SimpleTypeName name, java.util.Optional receiverParameter, java.util.List formalParameters) {
this.parameters = parameters;
this.name = name;
this.receiverParameter = receiverParameter;
this.formalParameters = formalParameters;
}
@Override
public boolean equals(Object other) {
if (!(other instanceof ConstructorDeclarator)) {
return false;
}
ConstructorDeclarator o = (ConstructorDeclarator) (other);
return parameters.equals(o.parameters) && name.equals(o.name) && receiverParameter.equals(o.receiverParameter) && formalParameters.equals(o.formalParameters);
}
@Override
public int hashCode() {
return 2 * parameters.hashCode() + 3 * name.hashCode() + 5 * receiverParameter.hashCode() + 7 * formalParameters.hashCode();
}
public ConstructorDeclarator withParameters(java.util.List parameters) {
return new ConstructorDeclarator(parameters, name, receiverParameter, formalParameters);
}
public ConstructorDeclarator withName(hydra.langs.java.syntax.SimpleTypeName name) {
return new ConstructorDeclarator(parameters, name, receiverParameter, formalParameters);
}
public ConstructorDeclarator withReceiverParameter(java.util.Optional receiverParameter) {
return new ConstructorDeclarator(parameters, name, receiverParameter, formalParameters);
}
public ConstructorDeclarator withFormalParameters(java.util.List formalParameters) {
return new ConstructorDeclarator(parameters, name, receiverParameter, formalParameters);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy