src/core/se/jbee/inject/Utils.java
public static boolean isClassMonomodal(Class<?> cls) {
		if (cls.isInterface())
			return false;
		if (cls == Object.class)
			return true;
		for (Field f : cls.getDeclaredFields())
			if (!Modifier.isStatic(f.getModifiers()))
				return false;
		for (Constructor<?> c : cls.getDeclaredConstructors())
			// maybe arguments are passed to super-type so we check it too
			if (c.getParameterTypes().length > 0)
				return isClassMonomodal(cls.getSuperclass());
		return true;
	}
public static boolean isClassMonomodal(Class<?> cls) {
		if (cls.isInterface())
			return false;
		if (cls == Object.class)
			return true;
		for (Field f : cls.getDeclaredFields())
			if (!Modifier.isStatic(f.getModifiers()))
				return false;
		for (Constructor<?> c : cls.getDeclaredConstructors())
			// maybe arguments are passed to super-type so we check it too
			if (c.getParameterTypes().length > 0)
				return isClassMonomodal(cls.getSuperclass());
		return true;
	}
@return A {@link Class} is monomodal if it there is just a single
possible initial state. All newly created instances can just have
this similar initial state but due to internal state they could
(not necessarily must) develop (behave) different later on.

The opposite of monomodal is multimodal.