Subversion Repositories DevTools

Rev

Rev 6914 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.erggroup.buildtool.ripple;

import java.util.ArrayList;
import java.util.HashMap;

public class ReleaseConfigData
{

    /** A Collection of available ReleaseConfig items
     *  Contains information on:
     *      Hostname
     *      MachType
     *      MachClass
     *      BuildFilter
     *      Master/Slave
     *      Rtag_Id
     *      RCon_Id
     */
    public ArrayList<ReleaseConfig> mReleaseConfig = new ArrayList<ReleaseConfig>();
    
    /** An array of known Machine Types
     *  ie: win32, sparc, solaris10_sparc, solaris10_x86, linux_i386
     */
    public ArrayList<String>   mMachineTypes = new ArrayList<String>();
    
    /** An array of known Machine Families
     *  ie: Win32, Solaris, Linux
     */
    public ArrayList<String>   mMachineClasses = new ArrayList<String>();
    
    /** A HashMap between MachineClass and Machine Types
     *  ie: Solaris -> sparc, solaris10_sparc, solaris10_x86
     *      Win32   -> win32
     *      Linux   -> linux_i386, linux_x64
     * 
     */
    public HashMap<String, ArrayList<String> > mMachineHash = new HashMap<String, ArrayList<String>>();
       
    /** Constructor
     * 
     */
    
    public ReleaseConfigData()
    {
    }
    
    /** Refresh the data
     *  Needed to allow the program to keep in sync with the database
     */
    public void resetData()
    {
        mReleaseConfig.clear();
        mMachineTypes.clear();
        mMachineClasses.clear();
        mMachineHash.clear();
    }
    
    /** Add a new ReleaseConfig item to the known information
     *      No attempt is made to prevent the same items being added multiple times
     */
    public void add(ReleaseConfig item)
    {
        mReleaseConfig.add(item);
        if (!mMachineTypes.contains(item.getmMachtype()))
        {
            mMachineTypes.add(item.getmMachtype());
        }
       
        if (!mMachineClasses.contains(item.getmMachclass()))
        {
            mMachineClasses.add(item.getmMachclass());
            mMachineHash.put(item.getmMachclass(), new ArrayList<String>());
        }
        
        //  Add the machType to the machClass
        ArrayList<String> typeList = mMachineHash.get(item.getmMachclass());
        if (!typeList.contains(item.getmMachtype()))
        {
            typeList.add(item.getmMachtype());
        }

    }
}