package com.celements.model.classes.fields; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; import javax.validation.constraints.NotNull; import org.xwiki.model.reference.DocumentReference; import com.xpn.xwiki.objects.classes.BooleanClass; import com.xpn.xwiki.objects.classes.PropertyClass; @Immutable public final class BooleanField extends AbstractClassField<Boolean> { private final String displayType; private final Integer defaultValue; public static class Builder extends AbstractClassField.Builder<Builder, Boolean> { private String displayType; private Integer defaultValue; public Builder(@NotNull DocumentReference classRef, @NotNull String name) { super(classRef, name); } @Override public Builder getThis() { return this; } public Builder displayType(@Nullable String val) { displayType = val; return getThis(); } public Builder defaultValue(@Nullable Integer val) { defaultValue = val; return getThis(); } @Override public BooleanField build() { return new BooleanField(getThis()); } } protected BooleanField(@NotNull Builder builder) { super(builder); this.displayType = builder.displayType; this.defaultValue = builder.defaultValue; } @Override public Class<Boolean> getType() { return Boolean.class; } public String getDisplayType() { return displayType; } public Integer getDefaultValue() { return defaultValue; } @Override protected PropertyClass getPropertyClass() { BooleanClass element = new BooleanClass(); if (displayType != null) { element.setDisplayType(displayType); } if (defaultValue != null) { element.setDefaultValue(defaultValue); } return element; } }