static Class<?> getDecoderClassType(Class<? extends Decoder> decoder) { Class<?> rootClass = null; if (Decoder.Text.class.isAssignableFrom(decoder)) { rootClass = Decoder.Text.class; } else if (Decoder.Binary.class.isAssignableFrom(decoder)) { rootClass = Decoder.Binary.class; } else if (Decoder.TextStream.class.isAssignableFrom(decoder)) { rootClass = Decoder.TextStream.class; } else if (Decoder.BinaryStream.class.isAssignableFrom(decoder)) { rootClass = Decoder.BinaryStream.class; } ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(decoder, rootClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); return as == null ? Object.class : (as[0] == null ? Object.class : as[0]); }
static Class<?> getDecoderClassType(Class<? extends Decoder> decoder) { Class<?> rootClass = null; if (Decoder.Text.class.isAssignableFrom(decoder)) { rootClass = Decoder.Text.class; } else if (Decoder.Binary.class.isAssignableFrom(decoder)) { rootClass = Decoder.Binary.class; } else if (Decoder.TextStream.class.isAssignableFrom(decoder)) { rootClass = Decoder.TextStream.class; } else if (Decoder.BinaryStream.class.isAssignableFrom(decoder)) { rootClass = Decoder.BinaryStream.class; } ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(decoder, rootClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); return as == null ? Object.class : (as[0] == null ? Object.class : as[0]); }
static Class<?> getEncoderClassType(Class<? extends Encoder> encoder) { Class<?> rootClass = null; if (Encoder.Text.class.isAssignableFrom(encoder)) { rootClass = Encoder.Text.class; } else if (Encoder.Binary.class.isAssignableFrom(encoder)) { rootClass = Encoder.Binary.class; } else if (Encoder.TextStream.class.isAssignableFrom(encoder)) { rootClass = Encoder.TextStream.class; } else if (Encoder.BinaryStream.class.isAssignableFrom(encoder)) { rootClass = Encoder.BinaryStream.class; } ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(encoder, rootClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); return as == null ? Object.class : (as[0] == null ? Object.class : as[0]); }
/** * Find a type of the class given it's Superclass. * * @param inspectedClass Class whose type is searched for. * @param superClass Class relatively to which the search is performed. * @return type of the class. */ public static Class<?> getClassType(Class<?> inspectedClass, Class<?> superClass) { ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(inspectedClass, superClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); if (as == null) { return null; } else { return as[0]; } }
static Class<?> getEncoderClassType(Class<? extends Encoder> encoder) { Class<?> rootClass = null; if (Encoder.Text.class.isAssignableFrom(encoder)) { rootClass = Encoder.Text.class; } else if (Encoder.Binary.class.isAssignableFrom(encoder)) { rootClass = Encoder.Binary.class; } else if (Encoder.TextStream.class.isAssignableFrom(encoder)) { rootClass = Encoder.TextStream.class; } else if (Encoder.BinaryStream.class.isAssignableFrom(encoder)) { rootClass = Encoder.BinaryStream.class; } ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(encoder, rootClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); return as == null ? Object.class : (as[0] == null ? Object.class : as[0]); }
/** * Find a type of the class given it's Superclass. * * @param inspectedClass Class whose type is searched for. * @param superClass Class relatively to which the search is performed. * @return type of the class. */ public static Class<?> getClassType(Class<?> inspectedClass, Class<?> superClass) { ReflectionHelper.DeclaringClassInterfacePair p = ReflectionHelper.getClass(inspectedClass, superClass); Class[] as = ReflectionHelper.getParameterizedClassArguments(p); if (as == null) { return null; } else { return as[0]; } }