001 002package com.commercetools.api.models.message; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.constraints.NotNull; 010 011import com.fasterxml.jackson.annotation.*; 012import com.fasterxml.jackson.databind.annotation.*; 013 014import io.vrap.rmf.base.client.utils.Generated; 015 016/** 017 * <p>Generated after a successful Revert Staged Changes update action.</p> 018 * 019 * <hr> 020 * Example to create an instance using the builder pattern 021 * <div class=code-example> 022 * <pre><code class='java'> 023 * ProductRevertedStagedChangesMessage productRevertedStagedChangesMessage = ProductRevertedStagedChangesMessage.builder() 024 * .id("{id}") 025 * .version(0.3) 026 * .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 027 * .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 028 * .sequenceNumber(0.3) 029 * .resource(resourceBuilder -> resourceBuilder) 030 * .resourceVersion(0.3) 031 * .plusRemovedImageUrls(removedImageUrlsBuilder -> removedImageUrlsBuilder) 032 * .build() 033 * </code></pre> 034 * </div> 035 */ 036@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 037@JsonDeserialize(as = ProductRevertedStagedChangesMessageImpl.class) 038public interface ProductRevertedStagedChangesMessage extends Message { 039 040 /** 041 * discriminator value for ProductRevertedStagedChangesMessage 042 */ 043 String PRODUCT_REVERTED_STAGED_CHANGES = "ProductRevertedStagedChanges"; 044 045 /** 046 * <p>List of image URLs that were removed during the Revert Staged Changes update action.</p> 047 * @return removedImageUrls 048 */ 049 @NotNull 050 @JsonProperty("removedImageUrls") 051 public List<String> getRemovedImageUrls(); 052 053 /** 054 * <p>List of image URLs that were removed during the Revert Staged Changes update action.</p> 055 * @param removedImageUrls values to be set 056 */ 057 058 @JsonIgnore 059 public void setRemovedImageUrls(final String... removedImageUrls); 060 061 /** 062 * <p>List of image URLs that were removed during the Revert Staged Changes update action.</p> 063 * @param removedImageUrls values to be set 064 */ 065 066 public void setRemovedImageUrls(final List<String> removedImageUrls); 067 068 /** 069 * factory method 070 * @return instance of ProductRevertedStagedChangesMessage 071 */ 072 public static ProductRevertedStagedChangesMessage of() { 073 return new ProductRevertedStagedChangesMessageImpl(); 074 } 075 076 /** 077 * factory method to create a shallow copy ProductRevertedStagedChangesMessage 078 * @param template instance to be copied 079 * @return copy instance 080 */ 081 public static ProductRevertedStagedChangesMessage of(final ProductRevertedStagedChangesMessage template) { 082 ProductRevertedStagedChangesMessageImpl instance = new ProductRevertedStagedChangesMessageImpl(); 083 instance.setId(template.getId()); 084 instance.setVersion(template.getVersion()); 085 instance.setCreatedAt(template.getCreatedAt()); 086 instance.setLastModifiedAt(template.getLastModifiedAt()); 087 instance.setLastModifiedBy(template.getLastModifiedBy()); 088 instance.setCreatedBy(template.getCreatedBy()); 089 instance.setSequenceNumber(template.getSequenceNumber()); 090 instance.setResource(template.getResource()); 091 instance.setResourceVersion(template.getResourceVersion()); 092 instance.setResourceUserProvidedIdentifiers(template.getResourceUserProvidedIdentifiers()); 093 instance.setRemovedImageUrls(template.getRemovedImageUrls()); 094 return instance; 095 } 096 097 /** 098 * factory method to create a deep copy of ProductRevertedStagedChangesMessage 099 * @param template instance to be copied 100 * @return copy instance 101 */ 102 @Nullable 103 public static ProductRevertedStagedChangesMessage deepCopy( 104 @Nullable final ProductRevertedStagedChangesMessage template) { 105 if (template == null) { 106 return null; 107 } 108 ProductRevertedStagedChangesMessageImpl instance = new ProductRevertedStagedChangesMessageImpl(); 109 instance.setId(template.getId()); 110 instance.setVersion(template.getVersion()); 111 instance.setCreatedAt(template.getCreatedAt()); 112 instance.setLastModifiedAt(template.getLastModifiedAt()); 113 instance.setLastModifiedBy( 114 com.commercetools.api.models.common.LastModifiedBy.deepCopy(template.getLastModifiedBy())); 115 instance.setCreatedBy(com.commercetools.api.models.common.CreatedBy.deepCopy(template.getCreatedBy())); 116 instance.setSequenceNumber(template.getSequenceNumber()); 117 instance.setResource(com.commercetools.api.models.common.Reference.deepCopy(template.getResource())); 118 instance.setResourceVersion(template.getResourceVersion()); 119 instance.setResourceUserProvidedIdentifiers(com.commercetools.api.models.message.UserProvidedIdentifiers 120 .deepCopy(template.getResourceUserProvidedIdentifiers())); 121 instance.setRemovedImageUrls( 122 Optional.ofNullable(template.getRemovedImageUrls()).map(ArrayList::new).orElse(null)); 123 return instance; 124 } 125 126 /** 127 * builder factory method for ProductRevertedStagedChangesMessage 128 * @return builder 129 */ 130 public static ProductRevertedStagedChangesMessageBuilder builder() { 131 return ProductRevertedStagedChangesMessageBuilder.of(); 132 } 133 134 /** 135 * create builder for ProductRevertedStagedChangesMessage instance 136 * @param template instance with prefilled values for the builder 137 * @return builder 138 */ 139 public static ProductRevertedStagedChangesMessageBuilder builder( 140 final ProductRevertedStagedChangesMessage template) { 141 return ProductRevertedStagedChangesMessageBuilder.of(template); 142 } 143 144 /** 145 * accessor map function 146 * @param <T> mapped type 147 * @param helper function to map the object 148 * @return mapped value 149 */ 150 default <T> T withProductRevertedStagedChangesMessage(Function<ProductRevertedStagedChangesMessage, T> helper) { 151 return helper.apply(this); 152 } 153 154 /** 155 * gives a TypeReference for usage with Jackson DataBind 156 * @return TypeReference 157 */ 158 public static com.fasterxml.jackson.core.type.TypeReference<ProductRevertedStagedChangesMessage> typeReference() { 159 return new com.fasterxml.jackson.core.type.TypeReference<ProductRevertedStagedChangesMessage>() { 160 @Override 161 public String toString() { 162 return "TypeReference<ProductRevertedStagedChangesMessage>"; 163 } 164 }; 165 } 166}