persistenceexample4/dataHandler/BasicDataHandler.java


package persistenceexample4.dataHandler;

import java.util.Vector;

import persistenceexample4.Constants;
import persistenceexample4.datafactory.ReadWriteEntities;

import com.sap.ip.me.api.services.MeIterator;

public class BasicDataHandler implements Constants {
    private static int columns;
    public static MeIterator persistenceEntities;
    private Vector retSubVec;
    private static BasicDataHandler bdh = null;

    private static int filter_index;
    private static int sort_index;
    private static boolean sort_ascending;
    private static String[] filter_string_array;
    private static int currentPage;
    private static int start_index;
    private static int recCount;
    private static int currentIndex;

    private static String miHomeFolder;
    /**
     * Method for entries with spezial character
     */
    public static BasicDataHandler instance(int index, int sortIndex, boolean sort_type, String[] obj) {
        if (bdh == null)
            bdh = new BasicDataHandler();
        filter_index = index;
        sort_index = sortIndex;
        sort_ascending = sort_type;
        //Characters which clicked in the navigation
        filter_string_array = obj;

        generateData();
        return bdh;
    }
    /**
     * Method creates the demodata to be displayed
     */
    private static void generateData() {
        // Read data from persistence layer according to filter settings and append it to the header.
        columns = 4;
        persistenceEntities = ReadWriteEntities.readEntity(filter_index, sort_index, sort_ascending, filter_string_array);
    }
    private String stringLoad(String var) {
        // This method checks if a String is null - if so, it uses a standard text
        String vartmp = var;
        if (vartmp == null)
            vartmp = "Not available";
        return vartmp;
    }
    //creates  a subarray of the full dataset defined by a start index and the number of rows
    //The result is returned and also kept locally as retSubVec to be retrieved by the bean
    public Vector getDataArray(int fromIndex, int count) {
        retSubVec = ReadWriteEntities.getEntities(persistenceEntities, fromIndex, count);        
        return retSubVec; 
    }


    //    returns a specific entry of the current subarray
    public void addEntry(String make, String model, String eng, String cyl, String valv, String lic) {
        ReadWriteEntities.addEntity(make, model, eng, cyl, valv, lic);
    }

    //    delete entry
    public void delEntry(String id) {
        ReadWriteEntities.deleteEntity(id);
    }

    //    saves all entries in the database
    public void commit() {
        ReadWriteEntities.commit();
    }    

    // returns the current subarray that has been created with getDataArray
    public Vector getCurrentSubArray() {
        return retSubVec;
    }
    //returns a specific entry of the current subarray
    public String getCurrentSubTableContent(int row, int column) {
        //Check for end of Vector
        if (row >= retSubVec.size()) {
            // If there is no more data, return a blank
            return " ";
        }
        Vector data = (Vector) retSubVec.elementAt(row);
        return data.elementAt(column).toString();
    }
    //returns a specific row of the current subarray
    public Vector getCurrentSubTableVector(int row) {
        //Check for end of Vector
        if (row >= retSubVec.size()) {
            // If there is no more data, return a blank
            return null;
        }
        Vector data = (Vector) retSubVec.elementAt(row);
        return data;
    }

    public int getDataCount() {
        return ReadWriteEntities.getPersistedEntityCount();
    }

    //    returns a specific entry specified by id
    public Vector getEntry(String id, int prev) {
        currentIndex = ReadWriteEntities.getEntity(persistenceEntities, id, prev);
        Vector dataVektor = ReadWriteEntities.getEntities(persistenceEntities, currentIndex, 1);
        return (Vector) dataVektor.elementAt(0);
    }

    //    returns a the first id of the array
    public String getFirstEntryID() {
        Vector dataVektor = ReadWriteEntities.getEntities(persistenceEntities, 0, 1);    
        Vector dataEntry = (Vector) dataVektor.elementAt(0);
        return dataEntry.elementAt(0).toString();
    }

    //    returns a the first id of the array
    public String getLastEntryID() {
        Vector dataVektor = ReadWriteEntities.getEntities(persistenceEntities, ReadWriteEntities.getPersistedEntityCount()-1, 1);    
        Vector dataEntry = (Vector) dataVektor.elementAt(0);
        return dataEntry.elementAt(0).toString();
    }

    public String getNextEntryID() {
        if (currentIndex < ReadWriteEntities.getPersistedEntityCount()) currentIndex++;
        Vector dataEntry = ReadWriteEntities.getEntities(persistenceEntities, currentIndex, 1);        
        return dataEntry.elementAt(0).toString();
    }

    //    returns a the first id of the array
    public String getPrevEntryID() {
        if (currentIndex > 0) currentIndex--;
        Vector dataEntry = ReadWriteEntities.getEntities(persistenceEntities, currentIndex, 1);        
        return dataEntry.elementAt(0).toString();
    }

    public int getCurrentEntry() {
        return currentIndex;
    }

    /**
     * used to set the MI homefolder from the main application
     */
    public void setMiHomeFolder(String string) {
        miHomeFolder = string;
    }
    public String getMiHomeFolder() {
        return miHomeFolder;
    }

    public int getColumns() {
        return columns;
    }
}