Open dhulipudi opened 6 months ago
package com.vd.ril.ui.common.core.models.impl;
import com.adobe.cq.export.json.ComponentExporter; import com.adobe.cq.export.json.ExporterConstants; import com.vrd.rai.ui.common.core.models.HeroSpot; import lombok.Getter; import lombok.experimental.Delegate; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.models.annotations.DefaultInjectionStrategy; import org.apache.sling.models.annotations.Exporter; import org.apache.sling.models.annotations.Model; import org.apache.sling.models.annotations.Via; import org.apache.sling.models.annotations.injectorspecific.Self; import org.apache.sling.models.annotations.injectorspecific.ValueMapValue; import org.apache.sling.models.annotations.via.ResourceSuperType;
@Model( adaptables = SlingHttpServletRequest.class, adapters = {HeroSpot.class, ComponentExporter.class}, resourceType = HeroSpotImpl.RESOURCE_TYPE, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL ) @Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
public class HeroSpotImpl implements HeroSpot { static final String RESOURCE_TYPE = "v-rspp-common/components/herospot/v1/herospot";
@Delegate() @Self @Via(type = ResourceSuperType.class) private com.vanguard.retail.ui.common.core.models.Teaser teaser; enum Layout { fullImage, halfImage, halfIllustration, card, pattern; } @ValueMapValue @Getter private String layout; @ValueMapValue @Getter private String textColor; @ValueMapValue @Getter private String backgroundColor; @ValueMapValue @Getter private String patternColor; @ValueMapValue @Getter private Boolean pretitleHeader = false; @ValueMapValue @Getter private String secondaryDescription; @Override public String getLayoutCssClass() { Layout layoutSelected = Layout.valueOf(layout); String cssClass; switch (layoutSelected) { case fullImage: cssClass = String.format("cmp-hero-spot--full-image %s %s", textColor, backgroundColor); break; case halfImage: cssClass = String.format("cmp-hero-spot--half-image %s", backgroundColor); break; case halfIllustration: cssClass = String.format("cmp-hero-spot--half-illustration %s", backgroundColor); break; case pattern: cssClass = String.format("cmp-hero-spot--pattern %s", patternColor); break; default: cssClass = ""; break; } return cssClass; }
}
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency>
core
package com.vd.ril.ui.common.core.models.impl;
import com.adobe.cq.export.json.ComponentExporter; import com.adobe.cq.export.json.ExporterConstants; import com.vrd.rai.ui.common.core.models.HeroSpot; import lombok.Getter; import lombok.experimental.Delegate; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.models.annotations.DefaultInjectionStrategy; import org.apache.sling.models.annotations.Exporter; import org.apache.sling.models.annotations.Model; import org.apache.sling.models.annotations.Via; import org.apache.sling.models.annotations.injectorspecific.Self; import org.apache.sling.models.annotations.injectorspecific.ValueMapValue; import org.apache.sling.models.annotations.via.ResourceSuperType;
@Model( adaptables = SlingHttpServletRequest.class, adapters = {HeroSpot.class, ComponentExporter.class}, resourceType = HeroSpotImpl.RESOURCE_TYPE, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL ) @Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
public class HeroSpotImpl implements HeroSpot { static final String RESOURCE_TYPE = "v-rspp-common/components/herospot/v1/herospot";
}