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

io.sphere.sdk.attributes.AttributeDefinitionBuilder Maven / Gradle / Ivy

The newest version!
package io.sphere.sdk.attributes;

import io.sphere.sdk.models.Base;
import io.sphere.sdk.models.Builder;
import io.sphere.sdk.models.LocalizedStrings;

public class AttributeDefinitionBuilder extends Base implements Builder {
    private final String name;
    private final LocalizedStrings label;
    private final AttributeType attributeType;

    private AttributeConstraint attributeConstraint = AttributeConstraint.NONE;
    private TextInputHint inputHint = TextInputHint.SINGLE_LINE;
    boolean isRequired = false;
    boolean isSearchable = true;

    AttributeDefinitionBuilder(final String name, final LocalizedStrings label, final AttributeType attributeType) {
        this.name = name;
        this.label = label;
        this.attributeType = attributeType;
    }

    public AttributeDefinitionBuilder attributeConstraint(final AttributeConstraint attributeConstraint) {
        this.attributeConstraint = attributeConstraint;
        return this;
    }

    public AttributeDefinitionBuilder inputHint(final TextInputHint inputHint) {
        this.inputHint = inputHint;
        return this;
    }

    public AttributeDefinitionBuilder required(final boolean isRequired) {
        this.isRequired = isRequired;
        return this;
    }

    public AttributeDefinitionBuilder isRequired(final boolean isRequired) {
        return required(isRequired);
    }

    public AttributeDefinitionBuilder searchable(final boolean isSearchable) {
        this.isSearchable = isSearchable;
        return this;
    }

    public AttributeDefinitionBuilder isSearchable(final boolean isSearchable) {
        return searchable(isSearchable);
    }

    @Override
    public AttributeDefinition build() {
        return new AttributeDefinition(attributeType, name, label, isRequired, attributeConstraint, isSearchable, inputHint);
    }

    public static AttributeDefinitionBuilder of(final String name, final LocalizedStrings label, final AttributeType attributeType) {
        return new AttributeDefinitionBuilder(name, label, attributeType);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy