public ArrayMemory getInitProperties(Environment env) {
        ArrayMemory result = __initProps.get(env);
        if (result == null) {
            synchronized (__initProps) {
                Collection<PropertyEntity> properties = getProperties();
                ArrayMemory props = new ArrayMemory();

                for (PropertyEntity property : getProperties()) {
                    if (id == property.clazz.getId() && property.getGetter() == null) {
                        props.putAsKeyString(
                                property.getSpecificName(),
                                property.getDefaultValue(env).fast_toImmutable()
                        );
                    }
                }

                ClassEntity tmp = parent;
                while (tmp != null) {
                    long otherId = tmp.getId();
                    for (PropertyEntity property : tmp.getProperties()) {
                        if (property.getClazz().getId() == otherId && property.getGetter() == null) {
                            if (property.modifier != Modifier.PROTECTED || props.getByScalar(property.getName()) == null)
                                props.getByScalarOrCreate(
                                        property.getSpecificName(),
                                        property.getDefaultValue(env).fast_toImmutable()
                                );
                        }
                    }
                    tmp = tmp.parent;
                }

                __initProps.put(env, result = props);
            }
        }

        return (ArrayMemory) result.toImmutable();
    }
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