@@ -1145,24 +1145,38 @@ public Entry includeMetadata() {
11451145 }
11461146
11471147 /**
1148- * The variant header will be added to client
1149- * @return {Entry}
1150- *
1151- * import contentstack from '@contentstack/delivery-sdk'
1148+ * Sets a single variant UID for the entry request.
1149+ * Adds the {@code x-cs-variant-uid} header to the request.
1150+ *
1151+ * @param variants single variant UID
1152+ * @return {@link Entry} object, so you can chain this call.
11521153 *
1153- * Stack stack = contentstack.Stack("apiKey", "deliveryToken",
1154- * "environment");
1155- * Entry entry =
1156- * stack.contentType("user").entry("entry_uid").variant("variant_uid").fetch();
1154+ * <pre class="prettyprint">
1155+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment");
1156+ * Entry entry = stack.contentType("abc").entry("entry_uid").variants("xyz");
1157+ * entry.fetch(callback);
1158+ * </pre>
11571159 */
11581160 public Entry variants (@ NotNull String variants ) {
1159- if (variants != null && variants .length () > 0 ) {
1161+ if (variants != null && ! variants .trim (). isEmpty () ) {
11601162 this .headers .put ("x-cs-variant-uid" , variants .trim ());
11611163 }
11621164 return this ;
1163-
11641165 }
11651166
1167+ /**
1168+ * Sets multiple variant UIDs for the entry request.
1169+ * Adds the {@code x-cs-variant-uid} header with a comma-separated list.
1170+ *
1171+ * @param variants array of variant UIDs
1172+ * @return {@link Entry} object, so you can chain this call.
1173+ *
1174+ * <pre class="prettyprint">
1175+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment");
1176+ * Entry entry = stack.contentType("abc").entry("entry_uid").variants(new String[]{"v1","v2"});
1177+ * entry.fetch(callback);
1178+ * </pre>
1179+ */
11661180 public Entry variants (@ NotNull String [] variants ) {
11671181 if (variants != null && variants .length > 0 ) {
11681182 List <String > variantList = new ArrayList <>();
@@ -1171,12 +1185,57 @@ public Entry variants(@NotNull String[] variants) {
11711185 variantList .add (variant .trim ());
11721186 }
11731187 if (!variantList .isEmpty ()) {
1174- this .headers .put ("x-cs-variant-uid" , String .join (", " , variantList ));
1188+ this .headers .put ("x-cs-variant-uid" , String .join ("," , variantList ));
11751189 }
11761190 }
11771191 return this ;
11781192 }
11791193
1194+ /**
1195+ * Sets the variant UID and branch for the entry request.
1196+ * The {@code x-cs-variant-uid} and {@code branch} headers are added to the request.
1197+ *
1198+ * @param variants single variant UID
1199+ * @param branch branch name to scope this request
1200+ * @return {@link Entry} object, so you can chain this call.
1201+ *
1202+ * <pre class="prettyprint">
1203+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment");
1204+ * Entry entry = stack.contentType("abc").entry("entry_uid").variants("xyz", "branch_name");
1205+ * entry.fetch(callback);
1206+ * </pre>
1207+ */
1208+ public Entry variants (@ NotNull String variants , @ NotNull String branch ) {
1209+ variants (variants );
1210+ return applyBranch (branch );
1211+ }
1212+
1213+ /**
1214+ * Sets multiple variant UIDs and a branch for the entry request.
1215+ * The {@code x-cs-variant-uid} and {@code branch} headers are added to the request.
1216+ *
1217+ * @param variants array of variant UIDs
1218+ * @param branch branch name to scope this request
1219+ * @return {@link Entry} object, so you can chain this call.
1220+ *
1221+ * <pre class="prettyprint">
1222+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment");
1223+ * Entry entry = stack.contentType("abc").entry("entry_uid").variants(new String[]{"v1","v2"}, "branch_name");
1224+ * entry.fetch(callback);
1225+ * </pre>
1226+ */
1227+ public Entry variants (@ NotNull String [] variants , @ NotNull String branch ) {
1228+ variants (variants );
1229+ return applyBranch (branch );
1230+ }
1231+
1232+ private Entry applyBranch (String branch ) {
1233+ if (branch != null && !branch .trim ().isEmpty ()) {
1234+ this .headers .put ("branch" , branch .trim ());
1235+ }
1236+ return this ;
1237+ }
1238+
11801239 public LinkedHashMap <String , Object > getHeaders () {
11811240 return headers ;
11821241 }
0 commit comments