All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.blossomproject.generator.classes.IndexationJobGenerator Maven / Gradle / Ivy

package com.blossomproject.generator.classes;

import com.blossomproject.core.common.PluginConstants;
import com.blossomproject.core.common.dto.AbstractDTO;
import com.blossomproject.core.common.search.IndexationEngine;
import com.blossomproject.core.scheduler.IndexationJob;
import com.blossomproject.generator.configuration.model.Settings;
import com.blossomproject.generator.utils.GeneratorUtils;
import com.helger.jcodemodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

public class IndexationJobGenerator implements ClassGenerator {
    @Override
    public void prepare(Settings settings, JCodeModel codeModel) {

    }

    @Override
    public JDefinedClass generate(Settings settings, JCodeModel codeModel) {
        try {
            JDefinedClass definedClass = codeModel._class(GeneratorUtils.getIndexationJobFullyQualifiedClassName(settings));
            definedClass._extends(codeModel.ref(IndexationJob.class));

            JFieldVar fileIndexationEngine = definedClass
                    .field(JMod.PRIVATE, codeModel.ref(IndexationEngine.class)
                                  ,
                            "fileIndexationEngine");
            fileIndexationEngine.annotate(Autowired.class);
            fileIndexationEngine.annotate(Qualifier.class).param("value",
                    settings.getEntityNameLowerCamel()+"IndexationEngine");

            JMethod getIndexationEngine = definedClass.method(JMod.PROTECTED, IndexationEngine.class, "getIndexationEngine");
            getIndexationEngine.annotate(Override.class);
            getIndexationEngine.body()._return(fileIndexationEngine);

            return definedClass;
        }
        catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("Can't generate indexation job class", e);
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy