public Memory mulProperty(Environment env, TraceInfo trace,
                              IObject object, String property, Memory memory, PropertyCallCache callCache, int cacheIndex)
            throws Throwable {
        return setProperty(env, trace, object, property, memory, new SetterCallback() {
            @Override
            public Memory invoke(PropertyEntity prop, Memory o1, Memory o2) {
                if (prop != null && prop.isTyped() && prop.getType() == HintType.INT) {
                    long x = o1.toLong(), y = o2.toLong();
                    try {
                        Math.multiplyExact(x, y);
                    } catch (ArithmeticException e) {
                        env.exception(trace,
                                BaseTypeError.class,
                                "Cannot math multiply property %s::$%s of type int past its overflow value",
                                prop.getClazz().getName(), prop.getName()
                        );
                    }
                }

                return o1.mul(o2);
            }
        }, callCache, cacheIndex);
    }
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