blob: 2a562c042a19c3576860a7f0d3a162a31388eddf [file] [log] [blame]
package com.intellij.util;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Arrays;
/**
* @author peter
*/
public class ParameterizedTypeImpl implements ParameterizedType {
private final Type myRawType;
private final Type[] myArguments;
public ParameterizedTypeImpl(Type rawType, Type... arguments) {
myRawType = rawType;
myArguments = arguments;
}
@Override
public Type[] getActualTypeArguments() {
return myArguments;
}
@Override
public Type getRawType() {
return myRawType;
}
@Override
public Type getOwnerType() {
return null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof ParameterizedTypeImpl)) return false;
ParameterizedTypeImpl that = (ParameterizedTypeImpl)o;
if (!Arrays.equals(myArguments, that.myArguments)) return false;
if (!myRawType.equals(that.myRawType)) return false;
return true;
}
@Override
public int hashCode() {
int result = myRawType.hashCode();
result = 31 * result + Arrays.hashCode(myArguments);
return result;
}
}