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

kr.jm.metric.config.mutator.AbstractMutatorConfig Maven / Gradle / Ivy

There is a newer version: 0.2.7.3
Show newest version
package kr.jm.metric.config.mutator;

import kr.jm.metric.config.AbstractConfig;
import kr.jm.metric.config.mutator.field.FieldConfig;
import kr.jm.utils.datastructure.JMArrays;
import kr.jm.utils.helper.JMLambda;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

@ToString
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public abstract class AbstractMutatorConfig extends AbstractConfig implements
        MutatorConfigInterface {

    @Getter
    protected String mutatorId;
    @Getter
    protected MutatorConfigType mutatorConfigType;
    @Getter
    protected FieldConfig fieldConfig;
    protected String[] fields;

    @Getter
    protected int workers;

    public AbstractMutatorConfig(String mutatorId,
            MutatorConfigType mutatorConfigType) {
        this(mutatorId, mutatorConfigType, null);
    }

    public AbstractMutatorConfig(String mutatorId,
            MutatorConfigType mutatorConfigType,
            FieldConfig fieldConfig, String... fields) {
        this.mutatorId = mutatorId;
        this.mutatorConfigType = mutatorConfigType;
        this.fieldConfig = fieldConfig;
        this.fields = fields;
    }

    @Override
    public String[] getFields() {
        return JMLambda.supplierIfNull(this.fields,
                () -> this.fields = JMArrays.EMPTY_STRINGS);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy