execute(graphics, type, options, isSilent) {
    const filterComp = graphics.getComponent(FILTER);

    if (type === 'mask') {
      const maskObj = graphics.getObject(options.maskObjId);

      if (!(maskObj && maskObj.isType('image'))) {
        return Promise.reject(rejectMessages.invalidParameters);
      }

      extend(options, { mask: maskObj });
      graphics.remove(options.mask);
    }
    if (!this.isRedo) {
      const prevfilterOption = filterComp.getOptions(type);
      const undoData = makeUndoData(type, prevfilterOption, options);

      cachedUndoDataForSilent = this.setUndoData(undoData, cachedUndoDataForSilent, isSilent);
    }

    return filterComp.add(type, options);
  }
Apply a filter into an image
@param {Graphics} graphics - Graphics instance
@param {string} type - Filter type
@param {Object} options - Filter options
 @param {number} options.maskObjId - masking image object id
@param {boolean} isSilent - is silent execution or not
@returns {Promise}