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

📄 stnchltablerow.java

📁 一个用java写的地震分析软件(无源码)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.trinet.jdbc.table;
import org.trinet.jdbc.datatypes.*;
import org.trinet.jdbc.*;
import java.util.*;

/** Class to access and manipulate NCEDC Schema tables containing station channel observation data.
* Tables of this type have a single primary key column whose value is
* defined by an associated database integer sequence identifier.
* Station channel data is referenced to event summary data through association tables.
* @see Amp
* @see Arrival
* @see Coda
*/
public abstract class StnChlTableRow extends DataTableRow implements Cloneable {

/** Data string member defined by extending classes is name of primary key column of implementing table. 
*/
    protected String keyColumn = null;

/** Data string member defined by extending classes is name of origin id (orid) association table for primary key column. 
*/
    protected String assocTableOrigin = null;

/** Data string member defined by extending classes is name of netmag id (magid) association table for primary key column.
*/
    protected String assocTableNetmag = null;

/** Constructor invokes DataTableRow constructor.
*/
    protected StnChlTableRow(String tableName, String sequenceName, int maxFields, int [] keyColumnIndex,
                        String[] fieldNames, boolean [] fieldNulls, int[] fieldClassIds) {
	super(tableName, sequenceName, maxFields, keyColumnIndex, fieldNames, fieldNulls, fieldClassIds);
    }

/** Overrides DataTableRow.clone()
*/
    public Object clone() {
	StnChlTableRow obj = null;
	obj = (StnChlTableRow) super.clone();
	obj.keyColumn = new String (keyColumn);
	obj.assocTableOrigin = new String (assocTableOrigin);
	obj.assocTableNetmag = new String (assocTableNetmag);
	return obj;
    }

    public static String toDateTimeConstraintSQLWhereClause(String tableName, java.util.Date startDate, java.util.Date endDate) {

        if (startDate == null && endDate == null) return "";

        String tableStr = "";
        if (! NullValueDb.isEmpty(tableName)) tableStr = tableName + ".";

        StringBuffer sb = new StringBuffer(128);
        sb.append(" ( ");
        if (startDate != null) {
            sb.append(tableStr).append("DATETIME >= ").append(org.trinet.util.EpochTime.dateToEpoch(startDate));
            if (endDate != null) sb.append(" AND ");
        }
        if (endDate != null) {
            sb.append(tableStr).append("DATETIME <= ").append(org.trinet.util.EpochTime.dateToEpoch(endDate));
        }
        sb.append(" )");
        return sb.toString();
    }

// DataStnChl methods
/** Returns a DataStnChl object derived from the station channel data stored in this object instance, else returns null.
*/
    public DataStnChl getDataStnChl() {
	return new DataStnChl(
		(DataString) fields.get(findFieldIndex("STA")),
		(DataString) fields.get(findFieldIndex("NET")),
		(DataString) fields.get(findFieldIndex("AUTH")),
		(DataString) fields.get(findFieldIndex("SUBSOURCE")),
		(DataString) fields.get(findFieldIndex("CHANNEL")),
		(DataString) fields.get(findFieldIndex("CHANNELSRC")),
		(DataString) fields.get(findFieldIndex("SEEDCHAN")),
		(DataString) fields.get(findFieldIndex("LOCATION")));
    }
/** Sets station channel data for this object instance to the DataObjects members of the input DataStnChl object;
* a null input results in a no-op.
*/
    public void setDataStnChl(DataStnChl obj) {
	if (obj == null) return;
	fields.set(findFieldIndex("STA"), ((DataString) obj.getDataObject(DataStnChl.STA)).clone());
	fields.set(findFieldIndex("NET"), ((DataString) obj.getDataObject(DataStnChl.NET)).clone());
	fields.set(findFieldIndex("AUTH"), ((DataString) obj.getDataObject(DataStnChl.AUTH)).clone());
	fields.set(findFieldIndex("SUBSOURCE"), ((DataString) obj.getDataObject(DataStnChl.SUBSOURCE)).clone());
	fields.set(findFieldIndex("CHANNEL"), ((DataString) obj.getDataObject(DataStnChl.CHANNEL)).clone());
	fields.set(findFieldIndex("CHANNELSRC"), ((DataString) obj.getDataObject(DataStnChl.CHANNELSRC)).clone());
	fields.set(findFieldIndex("SEEDCHAN"), ((DataString) obj.getDataObject(DataStnChl.SEEDCHAN)).clone());
	fields.set(findFieldIndex("LOCATION"), ((DataString) obj.getDataObject(DataStnChl.LOCATION)).clone());
    }
/** Returns List object containing station channel DataObject fields for this object instance.
*/
    public List getDataStnChlList() {
	return fields.subList(findFieldIndex("STA"), findFieldIndex("LOCATION"));
    }
/** Sets station data fields in this object instance to the values in input List; a null input results in a no-op.
*/
    public void setDataStnChlList(List list) {
	if (list == null) return;
	fields.addAll(findFieldIndex("STA"), list);
    }

// Database query methods
/** Returns table row count.
*/
	public int getRowCount() {
	    return ExecuteSQL.getRowCount(connDB, getTableName());
	}

/** Returns table row count corresponding to the specified input event id.
*/
	public int getRowCountByEventId(long evid) {
	    String countString = "DISTINCT " + keyColumn;
	    String whereString = "WHERE " +  keyColumn + " IN (SELECT " + keyColumn + " FROM " + assocTableOrigin 
		+ " WHERE ORID IN (SELECT ORID FROM ORIGIN WHERE EVID = " + evid + "))" ;
	    return ExecuteSQL.getRowCount(connDB, getTableName(), countString, whereString);
	}

/** Returns table row count corresponding to the specified input origin id.
*/
	public int getRowCountByOriginId(long orid) {
	    String countString = keyColumn;
	    String whereString = "WHERE " +  keyColumn + " IN (SELECT " + keyColumn + " FROM " + assocTableOrigin 
		+ " WHERE ORID = " + orid + ")" ;
	    return ExecuteSQL.getRowCount(connDB, getTableName(), countString, whereString);
	}

/** Returns table row count corresponding to the preferred origin id of the specified input event id.
*/
	public int getRowCountByPreferredOriginId(long evid) {
	    String countString = keyColumn;
	    String whereString = "WHERE " +  keyColumn + " IN (SELECT " + keyColumn + " FROM " + assocTableOrigin 
		+ " WHERE ORID = (SELECT PREFOR FROM EVENT WHERE EVID = " + evid + "))";
	    return ExecuteSQL.getRowCount(connDB, getTableName(), countString, whereString);
	}

/** Returns table row count corresponding to the preferred netmag id of the specified input event id.
*/
	public int getRowCountByPreferredMagId(long evid) {
	    if (assocTableNetmag == null) return -1;
	    String countString = keyColumn;
	    String whereString = "WHERE " +  keyColumn + " IN (SELECT " + keyColumn + " FROM " + assocTableNetmag
		+ " WHERE MAGID = (SELECT PREFMAG FROM EVENT WHERE EVID = " + evid + "))";
	    return ExecuteSQL.getRowCount(connDB, getTableName(), countString, whereString);
	}

/** Returns an array where each element contains the data from a single table row parsed from an SQL query
* WHERE the DATETIME column is BETWEEN the specified input times and the SUBSOURCE column has the specified input value.
* A return value of null indicates no data or an error condition.
*/

⌨️ 快捷键说明

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