/**
*
*/
package com.lexicalscope.fluentreflection;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.hamcrest.Description;
final class MatcherReflectingOn extends ReflectionMatcher<FluentAccess<?>> {
private final Class<?> klass;
MatcherReflectingOn(final Class<?> klass) {
this.klass = klass;
}
@Override public boolean matchesSafely(final FluentAccess<?> arg) {
return arg.classUnderReflection().equals(klass);
}
@Override public void describeTo(final Description description) {
description.appendText("type ").appendValue(klass);
}
@Override public final boolean equals(final Object obj) {
if (obj != null && obj.getClass().equals(this.getClass())) {
return new EqualsBuilder()
.append(klass, ((MatcherReflectingOn) obj).klass)
.isEquals();
}
return false;
}
@Override public final int hashCode() {
return klass.hashCode();
}
}