⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jm2dvector.java

📁 梦界家园程序开发基底框架
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        piCurrentRow--;
        return true;

    } // end delRow

    /**
     * 峴斣崋丄楍柤傪巜掕偟偰奩摉偡傞崁栚抣偑 null 偐偳偆偐僠僃僢僋偡傞丅
     * @param  aiRow		峴斣崋乮0 乣乯
     * @param  asName		楍柤
     * @return null 抣偺応崌 true丄偦偆偱側偗傟偽 false
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌丄
     *								晄惓側楍柤偑巜掕偝傟偨応崌
     */
    public synchronized boolean isNull (int aiRow, String asName) throws
            Exception {

        // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
        JMVector aColumns = getColItemArray(aiRow);
        // 楍柤偵奩摉偡傞崁栚僨乕僞傪庢摼偡傞
        JMVal oItem = getItemObject(aColumns, getColByName(asName));
        return oItem.isNull();

    }

    /**
     * 巜掕偝傟偨峴斣崋丄楍斣崋偵奩摉偡傞崁栚抣偑 null 偐偳偆偐僠僃僢僋偡傞丅
     * @param  aiRow		峴斣崋乮0 乣乯
     * @param  aiCol		楍斣崋乮0 乣乯
     * @return null 抣偺応崌 true丄偦偆偱側偗傟偽 false
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌丄
     *								晄惓側楍斣崋偑巜掕偝傟偨応崌
     */
    public synchronized boolean isNull (int aiRow, int aiCol) throws Exception {

        // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
        JMVector aColumns = getColItemArray(aiRow);
        // 楍斣崋偵奩摉偡傞崁栚僨乕僞傪庢摼偡傞
        JMVal oItem = getItemObject(aColumns, aiCol);
        return oItem.isNull();

    }

    /**
     * 峴斣崋偲楍柤傪巜掕偟偰奩摉偡傞崁栚抣傪抲姺偡傞丅
     * @param  aiRow		峴斣崋乮0 乣乯
     * @param  asName		楍柤
     * @param  ayValue		byte 宆崁栚抣
     * @return 抲姺偝傟偨崁栚僆僽僕僃僋僩
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌丄
     *								晄惓側楍柤偑巜掕偝傟偨応崌
     */
    public synchronized JMVal replace (int aiRow,
                                       String asName,
                                       Object ayValue) throws Exception {

        // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
        JMVector aColumns = getColItemArray(aiRow);
        // 楍柤偵奩摉偡傞崁栚僨乕僞傪抲姺偡傞
        return replaceItemObject(aColumns,
                                 getColByName(asName),
                                 new JMVal(ayValue));

    }

    /**
     * 峴斣崋偲楍柤傪巜掕偟偰奩摉偡傞崁栚抣傪抲姺偡傞丅
     * @param  aiRow		峴斣崋乮0 乣乯
     * @param  asName		楍柤
     * @param  ayValue		byte 宆崁栚抣
     * @return 抲姺偝傟偨崁栚僆僽僕僃僋僩
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌丄
     *								晄惓側楍柤偑巜掕偝傟偨応崌
     */
    public synchronized JMVal replace (int aiRow,
                                       int aiCol,
                                       Object ayValue) throws Exception {

        // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
        JMVector aColumns = getColItemArray(aiRow);
        // 楍柤偵奩摉偡傞崁栚僨乕僞傪抲姺偡傞
        return replaceItemObject(aColumns,
                                 aiCol,
                                 new JMVal(ayValue));

    }

    /**
     * 峴斣崋偲楍斣崋傪巜掕偟偰奩摉偡傞崁栚抣傪抲姺偡傞丅
     * @param  aiRow		峴斣崋
     * @param  aiCol		楍斣崋
     * @param  abValue		boolean 宆崁栚抣
     * @return 抲姺偝傟偨崁栚僆僽僕僃僋僩
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌丄
     *								晄惓側楍斣崋偑巜掕偝傟偨応崌
     */
    protected synchronized JMVal replaceObject (int aiRow,
                                                int aiCol,
                                                JMVal JMValue) throws
            Exception {

        // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
        JMVector aColumns = getColItemArray(aiRow);
        // 楍斣崋偵奩摉偡傞崁栚僨乕僞傪抲姺偡傞
        return replaceItemObject(aColumns,
                                 aiCol,
                                 JMValue);

    }

    /**
     * 僆僽僕僃僋僩偺撪梕傪帵偡暥帤楍傪曉偡丅
     * @return 僆僽僕僃僋僩傪昞尰偡傞暥帤楍
     */
    public String toString () {
        StringBuffer zRet = new StringBuffer(4096);
        zRet.append("[ ");
        if (!JMCheck.isNull(getName())) {
            zRet.append("Name=");
            zRet.append(getName());
            zRet.append(", ");
        }
        if (paColNames != null) {
            zRet.append("ColNames=");
            zRet.append(paColNames.toString());
            zRet.append(", ");
        }
        if (paRows != null) {
            zRet.append("Rows=");
            zRet.append(paRows.toString());
        }
        zRet.append("]");
        return zRet.toString();
    }

    /**
     * 僷儔儊乕僞偲偟偰搉偝傟偨僨乕僞峔憿偲摨偠僨乕僞宆丒崁栚柤傪僷儔儊乕僞偲偟偰搉偝傟偨JM2DVector偵搊榐偡傞
     * @return 摨偠僨乕僞宆丒崁栚柤傪僷儔儊乕僞偲偟偰搉偝傟偨JM2DVector
     * @throws Exception
     */
    public JM2DVector toJM2DVector () throws Exception {

        JM2DVector pfArrReturn = new JM2DVector(psName);
        for (int i = 0; i < rowCount(); i++) {
            // 峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞
            JMVector aColumns = getColItemArray(i);
            for (int j = 0; j < aColumns.size(); j++) {
                // 楍柤偵奩摉偡傞崁栚僨乕僞傪庢摼偡傞
                Object oItem = getItemObject(aColumns, j);
                if (oItem instanceof String) {
                    //pfArrReturn.addItem ( paColNames.get ( j ).toString () , oItem.toString () ) ;
                } else {
                    //pfArrReturn.addItem ( paColNames.get ( j ).toString () , ( byte[] ) oItem ) ;
                }
            }
            pfArrReturn.nextRow();
        }
        return pfArrReturn;

    }

    public JMVector<JMVector> getRowData () throws Exception {
        return paRows;
    }

    //////////////////////////////////////////////////////////////////////////
    // private 儊僜僢僪

    /**
     * 巜掕偝傟偨楍柤偺惓摉惈傪僠僃僢僋偟丄楍柤攝楍偲楍柤儅僢僾偵搊榐偡傞丅<BR>
     * 楍柤偑埲壓偺忦審傪枮懌偟側偄応崌丄楍柤晄惓偲偟偰椺奜傪憲弌偡傞丅<BR>
     * 丒楍柤偑 null 傑偨偼嬻暥帤偺応崌<BR>
     * 丒<tt>JM2DVector</tt>偑楍柤枹巊梡偱惗惉偝傟偨応崌<BR>
     * 丒偡偱偵愝掕嵪傒偺楍柤偲堦抳偟側偄応崌<BR>
     * 丒懠偺楍偺楍柤偲摨堦偺楍柤偑巜掕偝傟偨応崌
     * @param  asName		楍柤
     * @throws Exception
     *						晄惓側楍柤乮嬻暥帤丄null乯傪巜掕偟偨応崌丄
     *						楍柤枹巊梡愝掕偺僆僽僕僃僋僩偱屇傃弌偝傟偨応崌丄
     *						摨堦峴偵搊榐嵪傒楍柤傪巜掕偟偨応崌丄
     *						婛搊榐峴偺摨堦楍偲堎側傞楍柤傪巜掕偟偨応崌
     */
    private void registerColumnName (String asName) throws Exception {

        // 楍柤偑 null 傑偨偼嬻暥帤偺応崌丄椺奜傪憲弌偡傞
        if (asName == null) {
            throw new NullPointerException();
        }
        asName = asName.trim();
        if (asName.length() == 0) {
            throw new IndexOutOfBoundsException();
        }
        // 楍柤枹巊梡偺応崌丄椺奜傪憲弌偡傞
        if (!hasNamedColumn()) {
            throw new Exception("楍柤枹巊梡偺愝掕偱楍柤[" + asName
                                + "]偑巜掕偝傟傑偟偨");
        }

        // 楍柤愝掕嵪傒偐丠
        if (paColNames.size() > piCurrentCol) {
            // 愝掕嵪傒楍柤偲堦抳偟偰偄傞丠
            String sOrgName = paColNames.get(piCurrentCol);
            if (!asName.equalsIgnoreCase(sOrgName)) {
                throw new Exception("愝掕嵪傒楍柤[" + sOrgName
                                    + "]偲堎側傞楍柤[" + asName
                                    + "]偑巜掕偝傟傑偟偨"
                        );
            }
        }
        // 楍柤枹愝掕側傜楍柤攝楍偲楍柤儅僢僾偵搊榐偡傞
        else {
            paColNames.add(asName);
            String sRegulatedName = asName.toUpperCase();
            if (poColNameMap.containsKey(sRegulatedName)) {
                throw new Exception("楍柤[" + asName
                                    + "]偼懠偺楍柤偵巜掕嵪傒偱偡");
            }
            poColNameMap.put(sRegulatedName, new Integer(piCurrentCol));
        }

    }

    /**
     *
     * @param aoItem JMVList
     * @return boolean
     * @throws Exception
     */
    public boolean addRow (JMVList aoItem) throws Exception {
        final String sMethod = "addRow";
        try {
            if (aoItem == null || aoItem.size() != this.colCount()) {
                return false;
            }
            for (int i = 0; i < colCount(); i++) {
                addItemBody(aoItem.get(i));
            }
            this.nextRow();
            return true;
        } catch (Exception e) {
            // 椺奜傪憲弌偡傞
            throw new Exception(CLASS_NAME + "." + sMethod, e);
        }

    }

    @SuppressWarnings ("unchecked")
    public boolean addCol (String asName, JMVList aoItem) throws Exception {
        if (asName == null || JMCheck.isNull("" + asName) ||
            aoItem == null || aoItem.size() != this.rowCount()) {
            return false;
        }

        // 楍柤傪惓婯壔偟偰搊榐偡傞
        piCurrentCol = paColNames.size() + 1;
        registerColumnName(asName);
        // 崁栚僆僽僕僃僋僩傪搊榐偡傞
        JMVector aRow;
        JMVal val;
        if (aoItem.getTypes().isSame()) {
            for (int i = 0; i < rowCount(); i++) {
                aRow = paRows.get(i);
                val = aoItem.get(i);
                aRow.add(val);
            }
            this.nextRow();
        } else {
            throw new Exception("崁栚抣偑晄堦抳偱偡");
        }
        return true;

    }

    /**
     * 僇儗儞僩峴斣崋丄僇儗儞僩楍斣崋偺崁栚抣傪搊榐偡傞丅
     * @param  aoItem		崁栚僆僽僕僃僋僩
     */
    @SuppressWarnings ("unchecked")
    private void addItemBody (JMVal aoItem) {
        // 僇儗儞僩峴偺楍僨乕僞攝楍傪庢摼偡傞
        JMVector aRow;
        if (paRows.size() <= piCurrentRow) {
            // 僇儗儞僩峴偺楍僨乕僞攝楍偑枹搊榐偺応崌
            aRow = new JMVector();
            paRows.add(aRow);
        } else {
            // 僇儗儞僩峴偺楍僨乕僞攝楍偑搊榐嵪傒偺応崌
            aRow = paRows.get(piCurrentRow);
        }
        // 楍僨乕僞攝楍偵崁栚僆僽僕僃僋僩傪搊榐偡傞
        aRow.add(aoItem);
        piCurrentCol++;
        if (poAutoNext) {
            this.nextRow();
        }
    }

    /**
     * 巜掕偝傟偨峴斣崋偵奩摉偡傞楍僨乕僞攝楍傪庢摼偡傞丅
     * @param  aiRow		峴斣崋乮0 乣乯
     * @return 楍僨乕僞攝楍僆僽僕僃僋僩
     * @throws Exception	晄惓側峴斣崋偑巜掕偝傟偨応崌
     */
    private JMVector getColItemArray (int aiRow) throws Exception {
//        final String sMethod = "getColItemArray";
        // 峴斣崋偼惓忢斖埻偐丠
        if (aiRow < 0 || aiRow > rowCount()) {

            throw new Exception("峴斣崋[" + aiRow + "]偑晄惓偱偡");
        }
        // 奩摉偡傞峴偺楍僨乕僞攝楍傪庢摼偡傞
        return paRows.get(aiRow);
    }

    /**
     * 楍僨乕僞攝楍偐傜巜掕偝傟偨楍斣崋偵奩摉偡傞崁栚僨乕僞僆僽僕僃僋僩傪庢摼
     *偡傞丅
     * @param  aaColumns	楍僨乕僞攝楍僆僽僕僃僋僩
     * @param  aiCol		楍斣崋乮0 乣乯
     * @return 崁栚僨乕僞僆僽僕僃僋僩
     * @throws Exception	晄惓側楍斣崋偑巜掕偝傟偨応崌
     */
    private static JMVal getItemObject (JMVector aaColumns, int aiCol) throws
            Exception {
//        final String sMethod = "getItemObject";
        // 楍斣崋偼惓忢斖埻偐丠
        if (aiCol < 0 || aiCol >= aaColumns.size()) {

            throw new Exception("楍斣崋[" + aiCol + "]偑晄惓偱偡");
        }
        // 奩摉偡傞楍偺崁栚僨乕僞傪庢摼偡傞
        return (JMVal) aaColumns.get(aiCol);
    }

    /**
     * 楍僨乕僞攝楍偺巜掕偝傟偨楍斣崋偵奩摉偡傞崁栚僨乕僞僆僽僕僃僋僩傪抲姺偟
     *丄抲姺偝傟偨崁栚僨乕僞傪曉媝偡傞丅
     * @param  aaColumns	楍僨乕僞攝楍僆僽僕僃僋僩
     * @param  aiCol		楍斣崋乮0 乣乯
     * @param  aoItem		抲姺偡傞崁栚僆僽僕僃僋僩
     * @return 抲姺偝傟偨崁栚僨乕僞僆僽僕僃僋僩
     * @throws Exception	晄惓側楍斣崋偑巜掕偝傟偨応崌
     */
    @SuppressWarnings ("unchecked")
    private static JMVal replaceItemObject (JMVector aaColumns,
                                            int aiCol,
                                            JMVal aoItem) throws Exception {
//        final String sMethod = "replaceItemObject";
        // 楍斣崋偼惓忢斖埻偐丠
        if (aiCol < 0 || aiCol >= aaColumns.size()) {

            throw new Exception("楍斣崋[" + aiCol + "]偑晄惓偱偡");
        }
        // 奩摉偡傞楍偺崁栚僨乕僞傪庢摼偡傞
        return (JMVal) aaColumns.set(aiCol, aoItem);
    }

    /**
     * 巜掕偝傟偨楍柤偵奩摉偡傞楍斣崋傪庢摼偡傞丅<BR>
     * 楍柤偑埲壓偺忦審傪枮懌偟側偄応崌丄楍柤晄惓偲偟偰椺奜傪憲弌偡傞丅<BR>
     * 丒楍柤偑 null 傑偨偼嬻暥帤偺応崌<BR>
     * 丒<tt>JM2DVector</tt>偑楍柤枹巊梡偱惗惉偝傟偨応崌<BR>
     * 丒堦抳偡傞楍柤偑搊榐偝傟偰偄側偄応崌<BR>
     * @param  asName		楍柤
     * @return 楍斣崋乮0 乣乯
     * @throws Exception	晄惓側楍柤偑巜掕偝傟偨応崌
     */
    private int getColByName (String asName) throws Exception {

        // 楍柤偑 null 傑偨偼嬻暥帤偺応崌丄椺奜傪憲弌偡傞
        if (asName == null) {
            throw new NullPointerException();
        }
        asName = asName.trim();
        if (asName.length() == 0) {
            throw new IndexOutOfBoundsException();
        }
        // 楍柤枹巊梡偺応崌丄椺奜傪憲弌偡傞
        if (!hasNamedColumn()) {
            throw new Exception("楍柤枹巊梡偺愝掕偱楍柤[" + asName
                                + "]偑巜掕偝傟傑偟偨");
        }
        // 楍柤儅僢僾偵搊榐偝傟偰偄傞丠
        Integer oCol = poColNameMap.get(asName.toUpperCase());
        if (oCol == null) {
            throw new Exception("楍柤[" + asName + "]偼枹搊榐偱偡");
        }
        return oCol.intValue();

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -