class EcmFileToSolrTransformer implements AcmObjectToSolrDocTransformer<EcmFile> {

    @Override
    public SolrDocument toSolrQuickSearch(EcmFile in)
    {
        SolrDocument doc = new SolrDocument();

        getSearchAccessControlFields().setAccessControlFields(doc, in);

        mapParentAclProperties(doc, in);

        doc.setAuthor_s(in.getCreator());
        doc.setAuthor(in.getCreator());
        doc.setObject_type_s(in.getObjectType());
        doc.setObject_id_s("" + in.getId());
        doc.setCreate_tdt(in.getCreated());
        doc.setId(in.getId() + "-" + in.getObjectType());
        doc.setLast_modified_tdt(in.getModified());
        doc.setName(in.getFileName());
        doc.setExt_s(in.getFileActiveVersionNameExtension());
        doc.setModifier_s(in.getModifier());

        doc.setParent_object_id_i(in.getContainer().getContainerObjectId());
        doc.setParent_object_id_s("" + in.getContainer().getContainerObjectId());
        doc.setParent_object_type_s(in.getContainer().getContainerObjectType());

        doc.setParent_ref_s(in.getContainer().getContainerObjectId() + "-" + in.getContainer().getContainerObjectType());

        doc.setTitle_parseable(in.getFileName());
        doc.setTitle_parseable_lcs(in.getFileName());
        doc.setTitle_t(in.getFileName());

        doc.setParent_folder_id_i(in.getFolder().getId());

        doc.setVersion_s(in.getActiveVersionTag());
        doc.setType_s(in.getFileType());
        doc.setCategory_s(in.getCategory());

        // need an _lcs field for sorting
        doc.setName_lcs(in.getFileName());

        doc.setCmis_version_series_id_s(in.getVersionSeriesId());

        doc.setMime_type_s(in.getFileActiveVersionMimeType());

        doc.setStatus_s(in.getStatus());

        doc.setHidden_b(isHidden(in));

        mapAdditionalProperties(in, doc.getAdditionalProperties());

        String participantsListJson = ParticipantUtils.createParticipantsListJson(in.getParticipants());
        doc.setAdditionalProperty("acm_participants_lcs", participantsListJson);
        return doc;
    }

}