package io.muoncore.codec.types;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashMap;
public class MapParameterizedType implements ParameterizedType {
private final Type valueType;
private final Type keyType;
public MapParameterizedType(Type keyType, Type valueType) {
this.keyType = keyType;
this.valueType = valueType;
}
@Override
public Type[] getActualTypeArguments() {
return new Type[]{keyType, valueType};
}
@Override
public Type getRawType() {
return HashMap.class;
}
@Override
public Type getOwnerType() {
return null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MapParameterizedType that = (MapParameterizedType) o;
if (valueType != null ? !valueType.equals(that.valueType) : that.valueType != null) return false;
return !(keyType != null ? !keyType.equals(that.keyType) : that.keyType != null);
}
@Override
public int hashCode() {
int result = valueType != null ? valueType.hashCode() : 0;
result = 31 * result + (keyType != null ? keyType.hashCode() : 0);
return result;
}
}