TypeParameterMatcher Class — netty Architecture
Architecture documentation for the TypeParameterMatcher class in TypeParameterMatcher.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD b5e2ef12_f8c3_cc7d_3bfa_6cc87ce1c99b["TypeParameterMatcher"] 1dab00dc_c780_9401_7e08_90cd19c3d5a4["TypeParameterMatcher.java"] b5e2ef12_f8c3_cc7d_3bfa_6cc87ce1c99b -->|defined in| 1dab00dc_c780_9401_7e08_90cd19c3d5a4 ff6bc485_cd30_8932_0758_9dcbdb8247ce["TypeParameterMatcher()"] b5e2ef12_f8c3_cc7d_3bfa_6cc87ce1c99b -->|method| ff6bc485_cd30_8932_0758_9dcbdb8247ce c16f9bcb_fe27_a93a_ccf8_d731fe6cba52["match()"] b5e2ef12_f8c3_cc7d_3bfa_6cc87ce1c99b -->|method| c16f9bcb_fe27_a93a_ccf8_d731fe6cba52
Relationship Graph
Source Code
common/src/main/java/io/netty/util/internal/TypeParameterMatcher.java lines 22–86
public abstract class TypeParameterMatcher {
private static final TypeParameterMatcher NOOP = new TypeParameterMatcher() {
@Override
public boolean match(Object msg) {
return true;
}
};
public static TypeParameterMatcher get(final Class<?> parameterType) {
final Map<Class<?>, TypeParameterMatcher> getCache =
InternalThreadLocalMap.get().typeParameterMatcherGetCache();
TypeParameterMatcher matcher = getCache.get(parameterType);
if (matcher == null) {
if (parameterType == Object.class) {
matcher = NOOP;
} else {
matcher = new ReflectiveMatcher(parameterType);
}
getCache.put(parameterType, matcher);
}
return matcher;
}
public static TypeParameterMatcher find(
final Object object, final Class<?> parametrizedSuperclass, final String typeParamName) {
final Map<Class<?>, Map<String, TypeParameterMatcher>> findCache =
InternalThreadLocalMap.get().typeParameterMatcherFindCache();
final Class<?> thisClass = object.getClass();
Map<String, TypeParameterMatcher> map = findCache.get(thisClass);
if (map == null) {
map = new HashMap<String, TypeParameterMatcher>();
findCache.put(thisClass, map);
}
TypeParameterMatcher matcher = map.get(typeParamName);
if (matcher == null) {
matcher = get(ReflectionUtil.resolveTypeParameter(object, parametrizedSuperclass, typeParamName));
map.put(typeParamName, matcher);
}
return matcher;
}
public abstract boolean match(Object msg);
private static final class ReflectiveMatcher extends TypeParameterMatcher {
private final Class<?> type;
ReflectiveMatcher(Class<?> type) {
this.type = type;
}
@Override
public boolean match(Object msg) {
return type.isInstance(msg);
}
}
TypeParameterMatcher() { }
}
Source
Frequently Asked Questions
What is the TypeParameterMatcher class?
TypeParameterMatcher is a class in the netty codebase, defined in common/src/main/java/io/netty/util/internal/TypeParameterMatcher.java.
Where is TypeParameterMatcher defined?
TypeParameterMatcher is defined in common/src/main/java/io/netty/util/internal/TypeParameterMatcher.java at line 22.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free