it.eng.spagobi.meta.initializer.name.BusinessModelNamesInitializer.java Source code

Java tutorial

Introduction

Here is the source code for it.eng.spagobi.meta.initializer.name.BusinessModelNamesInitializer.java

Source

/**
 SpagoBI, the Open Source Business Intelligence suite
    
 Copyright (C) 2012 Engineering Ingegneria Informatica S.p.A. - SpagoBI Competency Center
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this file,
 You can obtain one at http://mozilla.org/MPL/2.0/.
     
**/
package it.eng.spagobi.meta.initializer.name;

import it.eng.spagobi.commons.resource.IResourceLocator;
import it.eng.spagobi.meta.initializer.SpagoBIMetaInitializerPlugin;
import it.eng.spagobi.meta.model.ModelFactory;
import it.eng.spagobi.meta.model.ModelObject;
import it.eng.spagobi.meta.model.business.BusinessIdentifier;
import it.eng.spagobi.meta.model.business.BusinessModel;
import it.eng.spagobi.meta.model.business.BusinessRelationship;
import it.eng.spagobi.meta.model.business.BusinessTable;
import it.eng.spagobi.meta.model.business.BusinessView;
import it.eng.spagobi.meta.model.business.CalculatedBusinessColumn;
import it.eng.spagobi.meta.model.business.SimpleBusinessColumn;

import org.apache.commons.lang.StringUtils;
import org.junit.Assert;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author Andrea Gioia
 *
 */
public class BusinessModelNamesInitializer {

    static public ModelFactory FACTORY = ModelFactory.eINSTANCE;
    static public IResourceLocator RL = SpagoBIMetaInitializerPlugin.getInstance().getResourceLocator();

    private static Logger logger = LoggerFactory.getLogger(BusinessModelNamesInitializer.class);

    private void setUniqueName(ModelObject o) {

        if (o instanceof BusinessModel) {
            setModelUniqueName((BusinessModel) o);
        } else if (o instanceof BusinessTable) {
            setTableUniqueName((BusinessTable) o);
        } else if (o instanceof BusinessView) {
            setViewUniqueName((BusinessView) o);
        } else if (o instanceof SimpleBusinessColumn) {
            setColumnUniqueName((SimpleBusinessColumn) o);
        } else if (o instanceof CalculatedBusinessColumn) {
            setCalculatedColumnUniqueName((CalculatedBusinessColumn) o);
        } else if (o instanceof BusinessIdentifier) {
            setIdentifierUniqueName((BusinessIdentifier) o);
        } else if (o instanceof BusinessRelationship) {
            setRelationshipUniqueName((BusinessRelationship) o);
        } else {

        }
    }

    private void setName(ModelObject o) {

        if (o instanceof BusinessModel) {
            setModelName((BusinessModel) o);
        } else if (o instanceof BusinessTable) {
            setTableName((BusinessTable) o);
        } else if (o instanceof BusinessView) {
            setViewName((BusinessView) o);
        } else if (o instanceof SimpleBusinessColumn) {
            setColumnName((SimpleBusinessColumn) o);
        } else if (o instanceof CalculatedBusinessColumn) {
            setCalculatedColumnName((CalculatedBusinessColumn) o);
        } else if (o instanceof BusinessIdentifier) {
            setIdentifierName((BusinessIdentifier) o);
        } else if (o instanceof BusinessRelationship) {
            setRelationshipName((BusinessRelationship) o);
        } else {

        }
    }

    public void setModelName(BusinessModel o) {

        try {

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public void setModelUniqueName(BusinessModel o) {

        try {

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    // =======================================================
    // TABLE
    // =======================================================

    // name
    public void setTableName(BusinessTable businessTable) {
        Assert.assertNotNull("Input parameter [businessTable] cannot be null", businessTable);
        Assert.assertNotNull("Input parameter [businessTable] is not associated to any physical table",
                businessTable.getPhysicalTable());
        String physicalTableName = businessTable.getPhysicalTable().getName();
        String baseName = StringUtils.capitalize(physicalTableName.replace("_", " "));
        setTableName(businessTable, baseName);
    }

    public void setTableName(BusinessTable businessTable, String baseName) {
        Assert.assertNotNull("Input parameter [businessTable] cannot be null", businessTable);
        Assert.assertNotNull("Input parameter [baseName] cannot be null", baseName);
        BusinessModel businessModel = businessTable.getModel();
        if (businessModel == null) {
            businessModel = businessTable.getPhysicalTable().getModel().getParentModel().getBusinessModels().get(0);
        }

        String name = baseName;
        while (businessModel.getBusinessTableByName(name).size() > 0) {
            name += " - Copy";
        }
        businessTable.setName(name);
    }

    // unique name
    public void setTableUniqueName(BusinessTable businessTable) {
        Assert.assertNotNull("Input parameter [businessTable] cannot be null", businessTable);
        Assert.assertNotNull("Input parameter [businessTable] is not associated to any physical table",
                businessTable.getPhysicalTable());

        String physicalTableName = businessTable.getPhysicalTable().getName();
        String baseUniqueName = physicalTableName.replace("_", " ");
        baseUniqueName = baseUniqueName.trim().replace(" ", "_");
        baseUniqueName = baseUniqueName.toLowerCase();
        setTableUniqueName(businessTable, baseUniqueName);

    }

    public void setTableUniqueName(BusinessTable businessTable, String baseUniqueName) {
        Assert.assertNotNull("Input parameter [businessTable] cannot be null", businessTable);
        Assert.assertNotNull("Input parameter [baseName] cannot be null", baseUniqueName);
        BusinessModel businessModel = businessTable.getModel();
        if (businessModel == null) {
            businessModel = businessTable.getPhysicalTable().getModel().getParentModel().getBusinessModels().get(0);
        }

        int index = 1;
        String uniqueName = baseUniqueName;
        while (businessModel.getBusinessTableByUniqueName(uniqueName) != null) {
            uniqueName = baseUniqueName + index++;
        }
        businessTable.setUniqueName(uniqueName);
    }

    // =======================================================
    // VIEW
    // =======================================================

    public void setViewName(BusinessView o) {

    }

    public void setViewUniqueName(BusinessView o) {
        try {

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // =======================================================
    // COLUMN
    // =======================================================
    public void setColumnName(SimpleBusinessColumn businessColumn) {
        String baseName = StringUtils.capitalize(businessColumn.getPhysicalColumn().getName().replace("_", " "));
        businessColumn.setName(baseName);
    }

    public void setColumnUniqueName(SimpleBusinessColumn businessColumn) {

        try {
            String baseUniqueName;
            String physicalColumnName = businessColumn.getPhysicalColumn().getName();
            baseUniqueName = physicalColumnName.replace("_", " ");
            baseUniqueName = baseUniqueName.trim().replace(" ", "_");
            baseUniqueName.toLowerCase();
            int index = 1;
            String uniqueName = baseUniqueName;
            while (businessColumn.getTable().getSimpleBusinessColumnByUniqueName(uniqueName) != null) {
                uniqueName = baseUniqueName + index++;
            }
            businessColumn.setUniqueName(uniqueName);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    // =======================================================
    // CALCULATED COLUMN
    // =======================================================

    public void setCalculatedColumnName(CalculatedBusinessColumn o) {

    }

    public void setCalculatedColumnUniqueName(CalculatedBusinessColumn o) {

        try {

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public void setIdentifierName(BusinessIdentifier o) {

    }

    public void setIdentifierUniqueName(BusinessIdentifier o) {

    }

    public void setRelationshipName(BusinessRelationship o) {

    }

    public void setRelationshipUniqueName(BusinessRelationship o) {
        try {

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}