de.fraunhofer.sciencedataamanager.beans.SystemInstanceNew.java Source code

Java tutorial

Introduction

Here is the source code for de.fraunhofer.sciencedataamanager.beans.SystemInstanceNew.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package de.fraunhofer.sciencedataamanager.beans;

import de.fraunhofer.sciencedataamanager.domain.ApplicationConfiguration;
import de.fraunhofer.sciencedataamanager.domain.SystemInstance;
import de.fraunhofer.sciencedataamanager.datamanager.ApplicationConfigurationDataManagerFactory;
import de.fraunhofer.sciencedataamanager.datamanager.SearchFieldMappingManager;
import de.fraunhofer.sciencedataamanager.datamanager.SystemInstanceDataManager;
import de.fraunhofer.sciencedataamanager.domain.SearchFieldMapping;
import java.io.IOException;
import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import org.apache.commons.lang3.StringEscapeUtils;

/**
 * This class provides logic and data to the connector new page.
 *
 * @author Moritz Mars
 */
@ManagedBean(name = "systemInstanceNew")
@SessionScoped
public class SystemInstanceNew {

    private String systemInstanceName;
    private String systemInstanceGroovyCode;

    private String selectedMetaField;

    private String selectedField;
    private LinkedList<SearchFieldMapping> searchFieldMappings;
    private LinkedList<SearchFieldMapping> searchMetaFields;
    private ApplicationConfiguration applicationConfiguration = ApplicationConfigurationDataManagerFactory
            .getApplicationConfigurationDataProvider(null).getApplicationConfiguration();

    /**
     * Returns the system instance name.
     *
     * @return the system instance name.
     */
    public String getSystemInstanceName() {
        return systemInstanceName;
    }

    /**
     * Returns the system instance groovy code.
     *
     * @return the system instance groovy code.
     */
    public String getSystemInstanceGroovyCode() {
        return systemInstanceGroovyCode;
    }

    /**
     * Sets the system instance name.
     *
     * @param systemInstanceName system instance name.
     */
    public void setSystemInstanceName(String systemInstanceName) {
        this.systemInstanceName = systemInstanceName;
    }

    /**
     * Sets the system instance groovy code.
     *
     * @param systemInstanceGroovyCode system instance groovy code.
     */
    public void setSystemInstanceGroovyCode(String systemInstanceGroovyCode) {
        this.systemInstanceGroovyCode = systemInstanceGroovyCode;
    }

    public String getSelectedMetaField() {
        return selectedMetaField;
    }

    public void setSelectedMetaField(String selectedMetaField) {
        this.selectedMetaField = selectedMetaField;
    }

    public String getSelectedField() {
        return selectedField;
    }

    public void setSelectedField(String selectedField) {
        this.selectedField = selectedField;
    }

    public LinkedList<SearchFieldMapping> getSearchFieldMappings() {
        return searchFieldMappings;
    }

    public void setSearchFieldMappings(LinkedList<SearchFieldMapping> searchFieldMappings) {
        this.searchFieldMappings = searchFieldMappings;
    }

    public LinkedList<SearchFieldMapping> getSearchMetaFields() {
        return searchMetaFields;
    }

    public void setSearchMetaFields(LinkedList<SearchFieldMapping> searchMetaFields) {
        this.searchMetaFields = searchMetaFields;
    }

    /**
     * This method creates a new connector.
     *
     * @throws IOException during database access.
     */
    public void createNewSystemInstance() throws IOException {
        try {
            SystemInstance systemInstance = new SystemInstance();
            systemInstance.setName(getSystemInstanceName());
            systemInstance.setGroovyCode(StringEscapeUtils.escapeJava(getSystemInstanceGroovyCode()));
            systemInstance.setSearchFieldMappings(searchFieldMappings);

            SystemInstanceDataManager systemInstanceDataProvider = new SystemInstanceDataManager(
                    applicationConfiguration);
            systemInstanceDataProvider.insert(systemInstance);
            FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml");
        } catch (Exception ex) {
            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
            this.applicationConfiguration.getLoggingManager().logException(ex);

        }
    }

    /**
     * Executes a redirect to index page.
     */
    public void redirectBack() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("index.xhtml");
        } catch (Exception ex) {
            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
            this.applicationConfiguration.getLoggingManager().logException(ex);

        }

    }

    public void metaFieldNameSelectionChanged() {
        if (!this.selectedMetaField.matches("\\d+")) {
            return;
        }
        for (SearchFieldMapping currentSearchFieldMapping : searchFieldMappings) {
            if (Integer.parseInt(this.selectedMetaField) == currentSearchFieldMapping.getID()) {
                this.selectedField = currentSearchFieldMapping.getFieldName();
                return;
            }
        }
    }

    public void updateFieldNameByMetaFieldName() {
        if (!this.selectedMetaField.matches("\\d+")) {
            return;
        }
        for (SearchFieldMapping currentSearchFieldMapping : this.getSearchFieldMappings()) {
            if (Integer.parseInt(this.selectedMetaField) == currentSearchFieldMapping.getID()) {
                currentSearchFieldMapping.setFieldName(this.selectedField);
                return;
            }
        }
    }

    public void onLoad(ComponentSystemEvent event) {
        try {

            SearchFieldMappingManager searchFieldMappingManager = new SearchFieldMappingManager(
                    applicationConfiguration);
            this.setSearchMetaFields(searchFieldMappingManager.getFieldMappings());
            LinkedList<SearchFieldMapping> searchFieldMappings = new LinkedList<SearchFieldMapping>();
            for (SearchFieldMapping currentSearchFieldMapping : this.getSearchMetaFields()) {
                currentSearchFieldMapping.setFieldName("");
                searchFieldMappings.add(currentSearchFieldMapping);
            }
            this.setSearchFieldMappings(searchFieldMappings);
        } catch (Exception ex) {
            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
            this.applicationConfiguration.getLoggingManager().logException(ex);

        }
    }

}