public static <T> boolean getTopicPropInfo(T paramCntr, TopicPropGroup defVal,
            StringBuilder sBuffer, ProcessResult result) {
        TopicPropGroup newConf = new TopicPropGroup();
        // get numTopicStores parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.NUMTOPICSTORES, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getNumTopicStores()),
                TServerConstants.TOPIC_STOREBLOCK_NUM_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setNumTopicStores((int) result.getRetData());
        // get numPartitions parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.NUMPARTITIONS, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getNumPartitions()),
                TServerConstants.TOPIC_PARTITION_NUM_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setNumPartitions((int) result.getRetData());
        // get unflushThreshold parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHTHRESHOLD, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushThreshold()),
                TServerConstants.TOPIC_DSK_UNFLUSHTHRESHOLD_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setUnflushThreshold((int) result.getRetData());
        // get unflushInterval parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHINTERVAL, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushInterval()),
                TServerConstants.TOPIC_DSK_UNFLUSHINTERVAL_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setUnflushInterval((int) result.getRetData());
        // get unflushDataHold parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFLUSHDATAHOLD, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getUnflushDataHold()),
                TServerConstants.TOPIC_DSK_UNFLUSHDATAHOLD_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setUnflushDataHold((int) result.getRetData());
        // get memCacheMsgSizeInMB parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.MCACHESIZEINMB, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheMsgSizeInMB()),
                TServerConstants.TOPIC_CACHESIZE_MB_MIN,
                TServerConstants.TOPIC_CACHESIZE_MB_MAX, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setMemCacheMsgSizeInMB((int) result.getRetData());
        // get memCacheFlushIntvl parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFMCACHEINTERVAL, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheFlushIntvl()),
                TServerConstants.TOPIC_CACHEINTVL_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setMemCacheFlushIntvl((int) result.getRetData());
        // get memCacheMsgCntInK parameter value
        if (!WebParameterUtils.getIntParamValue(paramCntr, WebFieldDef.UNFMCACHECNTINK, false,
                (defVal == null ? TBaseConstants.META_VALUE_UNDEFINED : defVal.getMemCacheMsgCntInK()),
                TServerConstants.TOPIC_CACHECNT_INK_MIN, sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setMemCacheMsgCntInK((int) result.getRetData());
        // get deletePolicy parameter value
        if (!WebParameterUtils.getDeletePolicyParameter(paramCntr, false,
                (defVal == null ? null : defVal.getDeletePolicy()), sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setDeletePolicy((String) result.getRetData());
        // get acceptPublish parameter value
        if (!WebParameterUtils.getBooleanParamValue(paramCntr, WebFieldDef.ACCEPTPUBLISH, false,
                (defVal == null ? null : defVal.getAcceptPublish()), sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setAcceptPublish((Boolean) result.getRetData());
        // get acceptSubscribe parameter value
        if (!WebParameterUtils.getBooleanParamValue(paramCntr, WebFieldDef.ACCEPTSUBSCRIBE, false,
                (defVal == null ? null : defVal.getAcceptSubscribe()), sBuffer, result)) {
            return result.isSuccess();
        }
        newConf.setAcceptSubscribe((Boolean) result.getRetData());
        result.setSuccResult(newConf);
        return result.isSuccess();
    }
Parse the parameter value for TopicPropGroup class

@param paramCntr   parameter container object
@param defVal     default value
@param sBuffer     string buffer
@param result     process result of parameter value
@return process result
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/common/utils/WebParameterUtils.java