001 002package com.commercetools.importapi.models.types; 003 004import java.util.*; 005import java.util.function.Function; 006 007import io.vrap.rmf.base.client.Builder; 008import io.vrap.rmf.base.client.utils.Generated; 009 010/** 011 * CustomFieldEnumTypeBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * CustomFieldEnumType customFieldEnumType = CustomFieldEnumType.builder() 017 * .plusValues(valuesBuilder -> valuesBuilder) 018 * .build() 019 * </code></pre> 020 * </div> 021 */ 022@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 023public class CustomFieldEnumTypeBuilder implements Builder<CustomFieldEnumType> { 024 025 private java.util.List<com.commercetools.importapi.models.types.CustomFieldEnumValue> values; 026 027 /** 028 * <p>Allowed values.</p> 029 * @param values value to be set 030 * @return Builder 031 */ 032 033 public CustomFieldEnumTypeBuilder values( 034 final com.commercetools.importapi.models.types.CustomFieldEnumValue... values) { 035 this.values = new ArrayList<>(Arrays.asList(values)); 036 return this; 037 } 038 039 /** 040 * <p>Allowed values.</p> 041 * @param values value to be set 042 * @return Builder 043 */ 044 045 public CustomFieldEnumTypeBuilder values( 046 final java.util.List<com.commercetools.importapi.models.types.CustomFieldEnumValue> values) { 047 this.values = values; 048 return this; 049 } 050 051 /** 052 * <p>Allowed values.</p> 053 * @param values value to be set 054 * @return Builder 055 */ 056 057 public CustomFieldEnumTypeBuilder plusValues( 058 final com.commercetools.importapi.models.types.CustomFieldEnumValue... values) { 059 if (this.values == null) { 060 this.values = new ArrayList<>(); 061 } 062 this.values.addAll(Arrays.asList(values)); 063 return this; 064 } 065 066 /** 067 * <p>Allowed values.</p> 068 * @param builder function to build the values value 069 * @return Builder 070 */ 071 072 public CustomFieldEnumTypeBuilder plusValues( 073 Function<com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder, com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder> builder) { 074 if (this.values == null) { 075 this.values = new ArrayList<>(); 076 } 077 this.values 078 .add(builder.apply(com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder.of()).build()); 079 return this; 080 } 081 082 /** 083 * <p>Allowed values.</p> 084 * @param builder function to build the values value 085 * @return Builder 086 */ 087 088 public CustomFieldEnumTypeBuilder withValues( 089 Function<com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder, com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder> builder) { 090 this.values = new ArrayList<>(); 091 this.values 092 .add(builder.apply(com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder.of()).build()); 093 return this; 094 } 095 096 /** 097 * <p>Allowed values.</p> 098 * @param builder function to build the values value 099 * @return Builder 100 */ 101 102 public CustomFieldEnumTypeBuilder addValues( 103 Function<com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder, com.commercetools.importapi.models.types.CustomFieldEnumValue> builder) { 104 return plusValues(builder.apply(com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder.of())); 105 } 106 107 /** 108 * <p>Allowed values.</p> 109 * @param builder function to build the values value 110 * @return Builder 111 */ 112 113 public CustomFieldEnumTypeBuilder setValues( 114 Function<com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder, com.commercetools.importapi.models.types.CustomFieldEnumValue> builder) { 115 return values(builder.apply(com.commercetools.importapi.models.types.CustomFieldEnumValueBuilder.of())); 116 } 117 118 /** 119 * <p>Allowed values.</p> 120 * @return values 121 */ 122 123 public java.util.List<com.commercetools.importapi.models.types.CustomFieldEnumValue> getValues() { 124 return this.values; 125 } 126 127 /** 128 * builds CustomFieldEnumType with checking for non-null required values 129 * @return CustomFieldEnumType 130 */ 131 public CustomFieldEnumType build() { 132 Objects.requireNonNull(values, CustomFieldEnumType.class + ": values is missing"); 133 return new CustomFieldEnumTypeImpl(values); 134 } 135 136 /** 137 * builds CustomFieldEnumType without checking for non-null required values 138 * @return CustomFieldEnumType 139 */ 140 public CustomFieldEnumType buildUnchecked() { 141 return new CustomFieldEnumTypeImpl(values); 142 } 143 144 /** 145 * factory method for an instance of CustomFieldEnumTypeBuilder 146 * @return builder 147 */ 148 public static CustomFieldEnumTypeBuilder of() { 149 return new CustomFieldEnumTypeBuilder(); 150 } 151 152 /** 153 * create builder for CustomFieldEnumType instance 154 * @param template instance with prefilled values for the builder 155 * @return builder 156 */ 157 public static CustomFieldEnumTypeBuilder of(final CustomFieldEnumType template) { 158 CustomFieldEnumTypeBuilder builder = new CustomFieldEnumTypeBuilder(); 159 builder.values = template.getValues(); 160 return builder; 161 } 162 163}