Yes, this is a custom adaptable class.
@Model(adaptables = SlingHttpServletRequest.class, adapters = Article.class, resourceType = ArticleImpl.RESOURCE_TYPE)
@Exporter(name = Constants.EXPORTER_NAME, extensions = Constants.EXPORTER_EXTENSION)
public class ArticleImpl implements Article {
@ScriptVariable
private ValueMap properties;
@ScriptVariable
private Style currentStyle;
@ScriptVariable
private Page currentPage;
@SlingObject
private ResourceResolver resourceResolver;
@SlingObject
private Resource resource;
@Self
private SlingHttpServletRequest request;
//some fields definition
@PostConstruct
private void init() {
tagManager = resourceResolver.adaptTo(TagManager.class);
fileReference = properties.get("fileReference", "");
populatePrimaryTag();
populateArticleDate();
populateAuthors();
}
//some methods
}
Anything particular I missed?
Thanks a lot.