package de.invesdwin.util.error;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.NotThreadSafe;
@SuppressWarnings("serial")
@NotThreadSafe
public final class UnknownArgumentException extends IllegalArgumentException {
private final Class<?> argumentClass;
private final Object argument;
private UnknownArgumentException(@Nonnull final Class<?> argumentClass, final Object argument) {
super("Unknown " + argumentClass.getSimpleName() + ": " + argument);
this.argumentClass = argumentClass;
this.argument = argument;
}
public Class<?> getArgumentClass() {
return argumentClass;
}
public Object getArgument() {
return argument;
}
public static <T> UnknownArgumentException newInstance(@Nonnull final Class<T> argumentClass, final T argument) {
return new UnknownArgumentException(argumentClass, argument);
}
}