public static class Builder {
* Builder constructor with required {@code Offer} attributes as parameters.
* It sets default values for remaining {@link Offer} attributes.
* @param id required {@link String} containing {@code Offer} identifier.
* @param type required {@link OfferType} indicating the {@code Offer} type.
* @param content required {@code String} containing the {@code Offer} content.
public Builder(final String id, final OfferType type, final String content) {...}
* Sets the etag for this {@code Offer}.
* @param etag {@link String} containing {@link Offer} etag.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setEtag(final String etag) {...}
* Sets the score for this {@code Offer}.
* @param score {@code int} containing {@link Offer} score.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setScore(final int score) {...}
* Sets the schema for this {@code Offer}.
* @param schema {@link String} containing {@link Offer} schema.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setSchema(final String schema) {...}
* Sets the metadata for this {@code Offer}.
* @param meta {@code Map<String, Object>} containing {@link Offer} metadata.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setMeta(final Map<String, Object> meta) {...}
* Sets the language for this {@code Offer}.
* @param language {@code List<String>} containing supported {@link Offer} language.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setLanguage(final List<String> language) {...}
* Sets the characteristics for this {@code Offer}.
* @param characteristics {@code Map<String, String>} containing {@link Offer} characteristics.
* @return this Offer {@link Builder}
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Builder setCharacteristics(final Map<String, String> characteristics) {...}
* Builds and returns the {@code Offer} object.
* @return {@link Offer} object or null.
* @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}.
public Offer build() {...}
* Gets the {@code Offer} identifier.
* @return {@link String} containing the {@link Offer} identifier.
public String getId() {...}
* Gets the {@code Offer} etag.
* @return {@link String} containing the {@link Offer} etag.
public String getEtag() {...}
* Gets the {@code Offer} score.
* @return {@code int} containing the {@link Offer} score.
public int getScore() {...}
* Gets the {@code Offer} schema.
* @return {@link String} containing the {@link Offer} schema.
public String getSchema() {...}
* Gets the {@code Offer} metadata.
* @return {@code Map<String, Object>} containing the {@link Offer} metadata.
public Map<String, Object> getMeta() {...}
* Gets the {@code Offer} type.
* @return {@link OfferType} indicating the {@link Offer} type.
public OfferType getType() {...}
* Gets the {@code Offer} language.
* @return {@code List<String>} containing the supported {@link Offer} language.
public List<String> getLanguage() {...}
* Gets the {@code Offer} content.
* @return {@link String} containing the {@link Offer} content.
public String getContent() {...}
* Gets the {@code Offer} characteristics.
* @return {@code Map<String, String>} containing the {@link Offer} characteristics.
public Map<String, String> getCharacteristics() {...}
* Gets the containing {@code Proposition} for this {@code Offer}.
* @return {@link Proposition} instance.
public Proposition getProposition() {...}
* Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the display interaction data for the
* given {@code Proposition} offer.
public void displayed() {...}
* Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the tap interaction data for the
* given {@code Proposition} offer.
public void tapped() {...}
* Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} item.
* The returned XDM data does contain the {@code eventType} for the Experience Event with value {@code decisioning.propositionDisplay}.
* Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override
* @return {@code Map<String, Object>} containing the XDM data for the proposition interaction.
public Map<String, Object> generateDisplayInteractionXdm() {...}
* Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} offer.
* The returned XDM data contains the {@code eventType} for the Experience Event with value {@code decisioning.propositionInteract}.
* Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override
* @return {@code Map<String, Object>} containing the XDM data for the proposition interaction.
public Map<String, Object> generateTapInteractionXdm() {...}