public void check(Environment env) {
            for (InvalidProperty el : properties) {
                ErrorException e = null;
                switch (el.kind) {
                    case MUST_BE_PROTECTED:
                        e = new FatalException(
                                Messages.ERR_ACCESS_LEVEL_MUST_BE_PROTECTED_OR_WEAKER.fetch(
                                        el.property.clazz.getName(),
                                        el.property.getName(),
                                        el.property.getPrototype().getClazz().getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                    case MUST_BE_PUBLIC:
                        e = new FatalException(
                                Messages.ERR_ACCESS_LEVEL_MUST_BE_PUBLIC.fetch(
                                        el.property.clazz.getName(),
                                        el.property.getName(),
                                        el.property.getPrototype().getClazz().getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                    case STATIC_AS_NON_STATIC:
                        e = new FatalException(
                                Messages.ERR_CANNOT_REDECLARE_STATIC_AS_NON_STATIC.fetch(
                                        el.property.getPrototype().getClazz().getName(),
                                        el.property.getPrototype().getName(),
                                        el.property.clazz.getName(),
                                        el.property.getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                    case NON_STATIC_AS_STATIC:
                        e = new FatalException(
                                Messages.ERR_CANNOT_REDECLARE_NON_STATIC_AS_STATIC.fetch(
                                        el.property.getPrototype().getClazz().getName(),
                                        el.property.getPrototype().getName(),
                                        el.property.clazz.getName(),
                                        el.property.getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                    case INVALID_TYPE:
                        e = new FatalException(
                                Messages.ERR_TYPED_PROP_INVALID_TYPE_OF_INHERITANCE.fetch(
                                        el.property.clazz.getName(), el.property.getName(),
                                        el.property.getPrototype().getTypeChecker().getSignature(),
                                        el.property.getPrototype().getClazz().getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                    case TYPE_MUST_BE_NOT_DEFINED:
                        e = new FatalException(
                                Messages.ERR_TYPED_PROP_TYPE_MUST_BE_NOT_DEFINED_OF_INHERITANCE.fetch(
                                        el.property.clazz.getName(), el.property.getName(),
                                        el.property.getPrototype().getClazz().getName()
                                ),
                                el.property.getTrace()
                        );
                        break;
                }

                if (e != null) {
                    if (env == null)
                        throw e;
                    else
                        env.error(e.getTraceInfo(), el.errorType, e.getMessage());
                }
            }
        }
return empty list if success else list with not valid implemented methods in class

@param _interface
@return
jphp-runtime/src/php/runtime/reflection/ClassEntity.java