package com.mwmd.aem.search.example.impl.indexer;
import com.mwmd.aem.search.core.annotation.Indexer;
import com.mwmd.aem.search.core.indexing.AbstractResourceIndexer;
import static com.mwmd.aem.search.core.indexing.ResourceIndexer.EMPTY_LIST;
import com.mwmd.aem.search.core.indexing.ResourceReference;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
/**
*
* @author Matthias Wermund
*/
@Indexer(resourceTypes = "foundation/components/reference")
public class ReferenceIndexer extends AbstractResourceIndexer {
@Override
public List<ResourceReference> getReferences(Resource resource) {
ValueMap properties = resource.adaptTo(ValueMap.class);
String path = properties.get("path", String.class);
List<ResourceReference> references;
if (StringUtils.isNotBlank(path)) {
references = new ArrayList<ResourceReference>(1);
references.add(new ResourceReference(resource.getResourceResolver().getResource(path)));
} else {
references = EMPTY_LIST;
}
return references;
}
}