use of com.adobe.cq.wcm.core.components.models.datalayer.PageData in project aem-core-wcm-components by Adobe-Marketing-Cloud.
the class DataLayerSupplierImpl method extend.
/**
* Construct a DataLayerSupplier from existing ComponentData.
*
* @param data The existing component data.
* @return A new DataLayerSupplier that uses the field values from the provided component data.
*/
public static DataLayerSupplier extend(@NotNull final ComponentData data) {
// set component field value suppliers
final DataLayerSupplierImpl supplier = new DataLayerSupplierImpl(DataLayerSupplier.EMPTY_SUPPLIER).setId(data::getId).setType(data::getType).setLastModifiedDate(data::getLastModifiedDate).setParentId(data::getParentId).setTitle(data::getTitle).setDescription(data::getDescription).setText(data::getText).setLinkUrl(data::getLinkUrl);
// set page field value suppliers
if (data instanceof PageData) {
PageData pageData = (PageData) data;
supplier.setUrl(pageData::getUrl).setTags(pageData::getTags).setTemplatePath(pageData::getTemplatePath).setLanguage(pageData::getLanguage);
}
// set container field value suppliers
if (data instanceof ContainerData) {
supplier.setShownItems(((ContainerData) data)::getShownItems);
}
// set image component field value suppliers
if (data instanceof ImageData) {
supplier.setAssetData(((ImageData) data)::getAssetData);
}
return supplier;
}
Aggregations