All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.mapping.processing.WarningManager Maven / Gradle / Ivy

package com.moon.mapping.processing;

import static com.moon.mapping.processing.ElementUtils.getSimpleName;
import static javax.tools.Diagnostic.Kind.MANDATORY_WARNING;

/**
 * @author benshaoye
 */
final class WarningManager {

    private final static String TEMPLATE = "【已忽略】'{}.{}({})' 不兼容 '{}.{}()' 返回值类型: {}";

    private boolean warned;
    private final MappingModel model;

    public WarningManager(MappingModel model) { this.model = model; }

    public void reset() { this.warned = true; }

    public boolean isWarned() { return warned; }

    public String doWarningIgnored() {
        String fromType = getSimpleName(model.getFromClassname());
        String toType = getSimpleName(model.getToClassname());
        @SuppressWarnings(("all")) Object[] values = {
            toType, model.getSetterName(), model.getSetterFinalType(),//
            fromType, model.getGetterName(), model.getGetterFinalType()
        };
        if (!isWarned()) {
            Logger.onLevel(MANDATORY_WARNING, () -> StringUtils.format(true, TEMPLATE, values));
        }
        this.warned = true;
        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy