package org.netbeans.gradle.project.tasks;
import java.util.Arrays;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.api.task.TaskKind;
public final class TaskOutputKey {
private static final Object[] NO_OBJECTS = new Object[0];
private final TaskKind kind;
private final Object[] otherKeys;
public TaskOutputKey(TaskKind kind, Object... otherKeys) {
ExceptionHelper.checkNotNullArgument(kind, "kind");
this.kind = kind;
this.otherKeys = cloneToObjectArray(otherKeys);
}
private Object[] cloneToObjectArray(Object[] objects) {
if (objects.length == 0) {
return NO_OBJECTS;
}
Object[] result = new Object[objects.length];
System.arraycopy(objects, 0, result, 0, result.length);
return result;
}
@Override
public int hashCode() {
int hash = 7;
hash = 67 * hash + kind.hashCode();
hash = 67 * hash + Arrays.hashCode(otherKeys);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj == this) return true;
if (getClass() != obj.getClass()) return false;
final TaskOutputKey other = (TaskOutputKey)obj;
if (this.kind != other.kind) return false;
return this.otherKeys == other.otherKeys
|| Arrays.equals(this.otherKeys, other.otherKeys);
}
}