docs: protected Object invokeStaticMissingProperty(Object instance, String propertyName, Object optionalValue, boolean isGetter) {
          MetaClass mc = instance instanceof Class ? registry.getMetaClass((Class) instance) : this;
          if (isGetter) {
              MetaMethod propertyMissing = mc.getMetaMethod(STATIC_PROPERTY_MISSING, GETTER_MISSING_ARGS);
              if (propertyMissing != null) {
                  return propertyMissing.invoke(instance, new Object[]{propertyName});
              }
          } else {
              MetaMethod propertyMissing = mc.getMetaMethod(STATIC_PROPERTY_MISSING, SETTER_MISSING_ARGS);
              if (propertyMissing != null) {
                  return propertyMissing.invoke(instance, new Object[]{propertyName, optionalValue});
              }
          }
  
          if (instance instanceof Class) {
              throw new MissingPropertyException(propertyName, (Class) instance);
          }
          throw new MissingPropertyException(propertyName, theClass);
      }