📄 jmfilter.java
字号:
package jm.util;
import java.sql.*;
import java.util.*;
import java.util.Date;
/**
* JMFilter.java
* 張棟奣梫 : 僔僗僥儉嫟捠宯張棟傪峴偆
* @author fu_changyong(1shome)
* @see jdk1.5.2
* @version 1.5.2.2
*/
public class JMFilter {
//僋儔僗柤
private static final String sClassName = "JMFilter";
// private static final int eq = 0 ;
// private static final int eqn = -1 ;
// private static final int big = 1 ;
// private static final int bigeq = 3 ;
// private static final int small = 2 ;
// private static final int smalleq = 4 ;
/**
* JMFolderCopy
* JMFolder偺僐僺乕
* @param oldJMFolder
* @return JMFolder
* @throws Exception
*/
public static JMFolder JMFolderCopy (JMFolder oldJMFolder) throws Exception {
JMFolder newJMFolder = null;
JMOutputStream outStream = new JMOutputStream();
oldJMFolder.serializeTo(outStream);
JMInputStream inStream = new JMInputStream(outStream.toByteArray());
newJMFolder = new JMFolder(inStream);
return newJMFolder;
}
/**
* JM2DArrayCopy
* JM2DArray丂偺僐僺乕
* @param oldJM2DArray
* @return JM2DArray
* @throws Exception
*/
public static JM2DArray JM2DArrayCopy (JM2DArray oldJM2DArray) throws Exception {
JM2DArray newJM2DArray = null;
JMOutputStream outStream = new JMOutputStream();
oldJM2DArray.serializeTo(outStream);
JMInputStream inStream = new JMInputStream(outStream.toByteArray());
newJM2DArray = new JM2DArray(inStream);
return newJM2DArray;
}
/**
* JMFolderCompare
* JMFolder 擵娫偺斾妑
* @param oldJMFolder
* @param newJMFolder
* @return boolean 丂憡摨帪:true;晄摨帪:false;
* @throws Exception
*/
public static boolean JMFolderCompare (JMFolder oldJMFolder, JMFolder newJMFolder) throws Exception {
if (JMUtility.compare(oldJMFolder, newJMFolder) != 0)
return false;
return true;
}
/**
* JM2DArrayCompare
* JM2DArray 擵娫偺斾妑
* @param oldJM2DArray
* @param newJM2DArray
* @return 丂 丂憡摨帪:true;
丂丂晄摨帪:false;
* @throws Exception
*/
public static boolean JM2DArrayCompare (JM2DArray oldJM2DArray,
JM2DArray newJM2DArray) throws Exception {
final String sMethod = "JM2DArrayCompare";
try {
if (JMUtility.compare(oldJM2DArray, newJM2DArray) != 0)
return false;
return true;
} catch (Exception e) { //end try
throw new Exception(sClassName + "." + sMethod, e);
}
}
/**
* JM2DArrayOrder
* JM2DArray 偺攔彉(彙彉)
* @param pfArray
* @param psKey
* @return JM2DArray
* @throws Exception
*/
@SuppressWarnings ("unchecked")
public static JM2DArray JM2DArrayOrderUp (JM2DArray pfArray, String psKey) throws Exception {
// final String sMethod = "JM2DArrayOrder" ;
String psTemp = "";
JM2DArray pArray2DOld = JM2DArrayCopy(pfArray);
JM2DArray pArray2DNew = new JM2DArray(); //怴嶌惉偺JM2DArray
JMVector<Integer> pArrtmp = new JMVector<Integer>(); //TEMP JM2DArray
//尞抣偺庢摼
HashMap<String, Integer> haColMap = new HashMap<String, Integer>(pArray2DOld.getColNameMap());
JMVector<String> paColNm = new JMVector<String>(pArray2DOld.getColNames());
//JMVector veColNmOld= new JMVector(pArray2DOld.getColNames());
//楍崋
int piColumn = Integer.parseInt("" + haColMap.get(psKey.toUpperCase()));
//LENGTH偺庢摼
int piRow = pArray2DOld.rowCount();
//椶宆偺庢摼
int piType = pArray2DOld.getDataType(0, piColumn);
//攔彉 START
int piSmall = 0;
//怴JM2DArray偺嶌惉
for (; pArrtmp.size() < piRow; ) {
//piSmall=0;
//TEMP VALUE
if (piType >= 0 && piType <= 5) {
psTemp = "999999999999";
} else {
psTemp = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";
}
Date psDate = Timestamp.valueOf("9999-12-31 23:59:59.999999999");
//曊椺
for (int i = -1; i < piRow - 1; ) {
i++;
//惍峴悢抣偺庢摼
JMVector<JMVal> RowValue = new JMVector<JMVal>(pArray2DOld.getRow(i));
Object objValue = RowValue.get(piColumn);
JMVal varValue = (JMVal) objValue;
String psValue = varValue.toString();
Date pdateValue = null;
psValue = psValue.substring(psValue.indexOf(",") + 1);
psValue = psValue.substring(0, psValue.length() - 1);
psValue = psValue.trim();
if (pArrtmp.contains(new Integer(i))) {
continue;
}
//THE INT_DOUBLE_FLOAT_LONG_VALUE 偺攔彉
if (piType >= 0 && piType <= 5) {
if (((new Double(psTemp)).doubleValue() >
(new Double(psValue)).doubleValue())) {
psTemp = psValue;
piSmall = i;
}
} else {
//TYPE_DATE 偺攔彉
if (piType == JMVal.TYPE_DATE) {
JMVal pvarValue = (JMVal) objValue;
pdateValue = pvarValue.getDateValue();
if (psDate.getTime() > pdateValue.getTime()) {
psDate = pdateValue;
piSmall = i;
}
}
//TYPE_STRING 偺攔彉
if (piType == JMVal.TYPE_STRING) {
if (psTemp.compareTo(psValue) > 0) {
psTemp = psValue;
piSmall = i;
}
}
} //end if type
} //end for 曊椺
//THE ROW_VALUE
pArrtmp.add(new Integer(piSmall));
//曊椺
for (int i = 0; i < paColNm.size(); i++) {
int iTypeold = pArray2DOld.getDataType(0, i);
//悢抣偺斾妑
//TYPE_STRING
if (iTypeold == JMVal.TYPE_STRING) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getStringValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_SHORT
else if (iTypeold == JMVal.TYPE_SHORT) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getShortValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_LONG
else if (iTypeold == JMVal.TYPE_LONG) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getLongValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_DOUBLE
else if (iTypeold == JMVal.TYPE_DOUBLE) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getDoubleValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_CHAR
else if (iTypeold == JMVal.TYPE_CHAR) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getCharValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_FLOAT
else if (iTypeold == JMVal.TYPE_FLOAT) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getFloatValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_BYTE
else if (iTypeold == JMVal.TYPE_BYTE) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getByteValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_INT
else if (iTypeold == JMVal.TYPE_INT) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getIntValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_BOOLEAN
else if (iTypeold == JMVal.TYPE_BOOLEAN) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getBooleanValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_BYTE[]
else if (iTypeold == JMVal.TYPE_BYTEARRAY) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getByteArrayValue(piSmall,
paColNm.get(i).toString()));
}
//TYPE_DATE
else if (iTypeold == JMVal.TYPE_DATE) {
pArray2DNew.addItem(paColNm.get(i).toString(),
pArray2DOld.getDateValue(piSmall,
paColNm.get(i).toString()));
} //end if
} //end for paColNm
pArray2DNew.nextRow();
} //end for
return pArray2DNew;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -