package org.simpleflatmapper.reflect; import java.lang.reflect.Type; public final class Parameter { private final int index; private final String name; private final Class<?> type; private final Type genericType; public Parameter(int index, String name, Class<?> type, Type genericType) { super(); this.index = index; this.name = name; this.type = type; this.genericType = genericType; } public Parameter(int index, String id, Class<?> type) { this(index, id, type, type); } public String getName() { return name; } public Class<?> getType() { return type; } public Type getGenericType() { return genericType; } public int getIndex() { return index; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Parameter parameter = (Parameter) o; if (index != parameter.index) return false; if (name != null ? !name.equals(parameter.name) : parameter.name != null) return false; if (!type.equals(parameter.type)) return false; return !(genericType != null ? !genericType.equals(parameter.genericType) : parameter.genericType != null); } @Override public int hashCode() { int result = index; result = 31 * result + (name != null ? name.hashCode() : 0); result = 31 * result + type.hashCode(); result = 31 * result + (genericType != null ? genericType.hashCode() : 0); return result; } @Override public String toString() { return "Parameter{" + "name='" + name + '\'' + ", type=" + type + ", resolvedType=" + genericType + '}'; } }