icegem-core/src/main/java/com/googlecode/icegem/serialization/codegen/Introspector.java
public static void checkClassIsSerialized(final Class<?> clazz) throws InvalidClassException {
        // class
        checkClassIsAnnotationMarked(clazz);
        checkClassIsPublic(clazz);
        checkClassIsNotNested(clazz);
        // constructor
        Constructor<?> constructor = checkConstructorNoArg(clazz);
        checkConstructorPublic(constructor);
        checkConstructorWithoutExceptions(constructor);
        checkParentConstructor(clazz);
        // getters
        Map<String, Method> gettersMap = getPropertyGetters(clazz);
        for (Map.Entry<String, Method> getterEntry : gettersMap.entrySet()) {
            Method getter = getterEntry.getValue();
            checkGetterPublic(getter);
            checkGetterNoArg(getter);
            checkGetterWithoutExceptions(getter);
            Method setter = getSetterForGetter(clazz, getter);
            checkSetterPublic(setter);
            checkSetterOneArg(setter);
            checkSetterReturnVoid(setter);
            checkSetterWithoutExceptions(setter);
            checkGetterSetterTheSameType(getter, setter);
        }
    }
public static void checkClassIsSerialized(final Class<?> clazz) throws InvalidClassException {
        // class
        checkClassIsAnnotationMarked(clazz);
        checkClassIsPublic(clazz);
        checkClassIsNotNested(clazz);
        // constructor
        Constructor<?> constructor = checkConstructorNoArg(clazz);
        checkConstructorPublic(constructor);
        checkConstructorWithoutExceptions(constructor);
        checkParentConstructor(clazz);
        // getters
        Map<String, Method> gettersMap = getPropertyGetters(clazz);
        for (Map.Entry<String, Method> getterEntry : gettersMap.entrySet()) {
            Method getter = getterEntry.getValue();
            checkGetterPublic(getter);
            checkGetterNoArg(getter);
            checkGetterWithoutExceptions(getter);
            Method setter = getSetterForGetter(clazz, getter);
            checkSetterPublic(setter);
            checkSetterOneArg(setter);
            checkSetterReturnVoid(setter);
            checkSetterWithoutExceptions(setter);
            checkGetterSetterTheSameType(getter, setter);
        }
    }
-------------------------- PUBLIC