elk-reasoner/src/main/java/org/semanticweb/elk/reasoner/query/EntailmentQueryConverter.java
public static boolean isEntailmentCheckingSupported(
			final Class<? extends ElkAxiom> axiomClass) {

		for (final Method declaredMethod : EntailmentQueryConverter.class
				.getDeclaredMethods()) {

			final int mod = declaredMethod.getModifiers();
			final Class<?>[] parameterTypes = declaredMethod
					.getParameterTypes();
			if ("visit".equals(declaredMethod.getName())
					&& Modifier.isPublic(mod) && !Modifier.isStatic(mod)
					&& parameterTypes.length == 1
					&& parameterTypes[0].isAssignableFrom(axiomClass)) {
				// There is a declared visit method that accepts axiomClass
				return true;
			}

		}

		return false;
	}
public static boolean isEntailmentCheckingSupported(
			final Class<? extends ElkAxiom> axiomClass) {

		for (final Method declaredMethod : EntailmentQueryConverter.class
				.getDeclaredMethods()) {

			final int mod = declaredMethod.getModifiers();
			final Class<?>[] parameterTypes = declaredMethod
					.getParameterTypes();
			if ("visit".equals(declaredMethod.getName())
					&& Modifier.isPublic(mod) && !Modifier.isStatic(mod)
					&& parameterTypes.length == 1
					&& parameterTypes[0].isAssignableFrom(axiomClass)) {
				// There is a declared visit method that accepts axiomClass
				return true;
			}

		}

		return false;
	}
One-parameter, public, non-static methods called "visit" and declared in
this class enumerate subclasses of {@link ElkAxiom} (parameter) for which
entailment queries are supported. This method returns {@code true} iff
the subclass of {@link ElkAxiom} specified as the parameter is a
parameter type of some of these methods, e.g., whether entailment query
of such an {@link ElkAxiom} is supported.

@param axiomClass
@return