📄 datastnchl.java
字号:
/** Converts the string values of all station channel data fields to uppercase.
* Does a no-op if isMutable == false.
* Returns a handle to this object instance.
*/
public DataStnChl toUpperCase() {
if(! isMutable()) return this;
for (int index = 0 ; index < MAX_FIELDS; index++) {
setValue(index, getStringValue(index).toUpperCase());
}
return this;
}
/** Converts the string values of all station channel data fields to lowercase.
* Does a no-op if isMutable == false.
* Returns a handle to this object instance.
*/
public DataStnChl toLowerCase() {
if(! isMutable()) return this;
for (int index = 0 ; index < MAX_FIELDS; index++) {
setValue(index, getStringValue(index).toLowerCase());
}
return this;
}
/** Returns a string of data field name and value pairs and for this object instance.
* Includes the station channel fields and the state flag fields.
* String is of the form:
* sta: "stavalue.toString()" net: "netvalue.toString()" ... Null: isNull() Update: isUpdate() Mutable: isMutable()
*/
public String classToString(){
String str = "sta: \"" + fields.get(STA).toString() +
"\" net: \"" + fields.get(NET).toString() +
"\" auth: \"" + fields.get(AUTH).toString() +
"\" subsrc: \"" + fields.get(SUBSOURCE).toString() +
"\" chl: \""+ fields.get(CHANNEL).toString() +
"\" chlsrc: \"" + fields.get(CHANNELSRC).toString() +
"\" seedchl: \"" + fields.get(SEEDCHAN).toString() +
"\" loc: \"" + fields.get(LOCATION).toString() +
"\" Null: " + valueNull + " Update: " + valueUpdate + " Mutable: " + valueMutable;
return str;
}
/** Returns the concatenated string values of only the STA, AUTH, SUBSOURCE, SEEDCHAN, and LOCATION fields.
* The fields are delimited by _ and empty fields are represented by an "*" character.
* If the internal data member object is null, a null pointer exception is thrown; this is an error.
*/
public String toStnChlString() {
StringBuffer sb = new StringBuffer(64);
String delimiter = "_";
if (fields.get(STA).toString().length() > 0) sb.append(fields.get(STA).toString());
else sb.append("*");
if (fields.get(AUTH).toString().length() > 0) sb.append(delimiter).append(fields.get(AUTH).toString());
else sb.append(delimiter).append("*");
if (fields.get(SUBSOURCE).toString().length() > 0) sb.append(delimiter).append(fields.get(SUBSOURCE).toString());
else sb.append(delimiter).append("*");
if (fields.get(SEEDCHAN).toString().length() > 0) sb.append(delimiter).append(fields.get(SEEDCHAN).toString());
else sb.append(delimiter).append("*");
if (fields.get(LOCATION).toString().length() > 0) sb.append(delimiter).append(fields.get(LOCATION).toString());
else sb.append(delimiter).append("*");
return sb.toString();
}
/** Returns the concatenated string values of only the STA, AUTH, and SEEDCHAN fields.
* The fields are delimited by _ and empty fields are represented by an "*" character.
* If the internal data member object is null, a null pointer exception is thrown; this is an error.
*/
public String toAbbrvStnChlString() {
StringBuffer sb = new StringBuffer(64);
String delimiter = "_";
if (fields.get(STA).toString().length() > 0) sb.append(fields.get(STA).toString());
else sb.append("*");
if (fields.get(AUTH).toString().length() > 0) sb.append(delimiter).append(fields.get(AUTH).toString());
else sb.append(delimiter).append("*");
if (fields.get(SEEDCHAN).toString().length() > 0) sb.append(delimiter).append(fields.get(SEEDCHAN).toString());
else sb.append(delimiter).append("*");
return sb.toString();
}
/** Returns the concatenated string values of all the station channel data fields.
* The fields are delimited by _ and empty fields are represented by an "*" character.
* If the internal data member object is null, a null pointer exception is thrown; this is an error.
*/
public String toString() {
return toDelimitedString('_');
}
public String toDelimitedString(char delimiter) {
StringBuffer sb = new StringBuffer(64);
if (fields.get(STA).toString().length() > 0) sb.append(fields.get(STA).toString());
else sb.append("*");
if (fields.get(NET).toString().length() > 0) sb.append(delimiter).append(fields.get(NET).toString());
else sb.append(delimiter).append("*");
if (fields.get(AUTH).toString().length() > 0) sb.append(delimiter).append(fields.get(AUTH).toString());
else sb.append(delimiter).append("*");
if (fields.get(SUBSOURCE).toString().length() > 0) sb.append(delimiter).append(fields.get(SUBSOURCE).toString());
else sb.append(delimiter).append("*");
if (fields.get(CHANNEL).toString().length() > 0) sb.append(delimiter).append(fields.get(CHANNEL).toString());
else sb.append(delimiter).append("*");
if (fields.get(CHANNELSRC).toString().length() > 0) sb.append(delimiter).append(fields.get(CHANNELSRC).toString());
else sb.append(delimiter).append("*");
if (fields.get(SEEDCHAN).toString().length() > 0) sb.append(delimiter).append(fields.get(SEEDCHAN).toString());
else sb.append(delimiter).append("*");
if (fields.get(LOCATION).toString().length() > 0) sb.append(delimiter).append(fields.get(LOCATION).toString());
else sb.append(delimiter).append("*");
return sb.toString();
}
/** Returns a concatenated string of updated (isUpdate == true) station channel field name and value pairs.
* The form is that of an SQL WHERE clause condition: sta = 'stavalue' AND net = 'netvalue' AND ...
* The WHERE is not included at the beginning of the string.
* Only those fields where isUpdate() == true are used to build the string.
* Empty string values are represented by SQL NULL.
*/
public String toStringSQLWhereCondition() {
StringBuffer retVal = new StringBuffer(512);
retVal.append(" ");
for (int index = 0; index < MAX_FIELDS; index++) {
if ( ((DataState) fields.get(index)).isUpdate() ) {
retVal.append(FIELD_NAMES[index] + " = ");
retVal.append(((DataObject) fields.get(index)).toStringSQL() + " AND ");
}
}
if (retVal.length() >= 5) retVal.replace(retVal.length()-5, retVal.length(), " ");
return retVal.toString();
}
/** Returns a concatenated string of updated (isUpdate == true) station channel field values.
* The form is that of an SQL INSERT statement value expression: " 'stavalue', 'netvalue' ..."
* Only those fields where isUpdate() == true are used to build the string.
* Empty string values are represented by SQL NULL.
*/
public String toStringSQLInsertValues() {
StringBuffer retVal = new StringBuffer(512);
retVal.append(" ");
for (int index = 0; index < MAX_FIELDS; index++) {
if ( ((DataState) fields.get(index)).isUpdate() ) retVal.append(((DataObject) fields.get(index)).toStringSQL() + ", ");
}
if (retVal.length() >= 2) retVal.replace(retVal.length()-2, retVal.length(), " ");
return retVal.toString();
}
/** Returns a concatenated string of updated (isUpdate == true) station channel field name and value pairs.
* The form is that of an SQL UPDATE SET statement: sta = 'stavalue', net = 'netvalue', ...
* Only those fields where isUpdate() == true are used to build the string.
* Empty string values are represented by SQL NULL.
*/
public String toStringSQLUpdateSet() {
StringBuffer retVal = new StringBuffer(512);
retVal.append(" ");
for (int index = 0; index < MAX_FIELDS; index++) {
if ( ((DataState) fields.get(index)).isUpdate() ) {
retVal.append(FIELD_NAMES[index] + " = ");
retVal.append(((DataObject) fields.get(index)).toStringSQL() + ", ");
}
}
if (retVal.length() >= 2) retVal.replace(retVal.length()-2, retVal.length(), " ");
return retVal.toString();
}
/** Returns a DataStnChl object resulting from parsing a string composed of station channel tokens.
* Invokes the default constructor.
* Parses the input string tokens replacing each of the default station channel field in order;
* Data fields are delimited by a space, underline, tab, or comma.
* Missing or null fields can be indicated by a delimited "*" character and are stored as the default empty strings.
* Throws an IndexOutOfBounds exception if the number of token fields is greater than MAX_FIELDS.
* Sets the object state flags to Update:true, Null:false, Mutable:true.
*/
static public DataStnChl stringToDataStnChl(String scString) throws IndexOutOfBoundsException {
DataStnChl dsc = new DataStnChl();
StringTokenizer st = new StringTokenizer(scString, FIELD_DELIMITERS);
if (st.countTokens() > MAX_FIELDS)
throw new IndexOutOfBoundsException("DataStnChl stringToDataStnChl(string) string:" + scString);
for (int index = 0; index < MAX_FIELDS; index++) {
if (! st.hasMoreTokens()) break;
try {
String tmpString = st.nextToken();
if (tmpString.equals(STAR_NULL_FIELD)) continue;
else dsc.fields.set(index, new DataString(tmpString));
}
catch (NoSuchElementException ex) { break;}
}
dsc.valueUpdate = true;
dsc.valueNull = false;
return dsc;
}
/**
* Sets the input ChannelIdIF instance's data member values to the equivalents of this instance.
* Returns the input ChannelId parameter instance reference.
*/
public ChannelIdIF parseToChannelId(ChannelIdIF chanId) {
chanId.setSta(getSta());
chanId.setNet(getNet());
chanId.setSeedchan(getSeedchan());
chanId.setLocation(getLocation());
chanId.setChannel(getChannel());
chanId.setChannelsrc(getChannelsrc());
if (chanId instanceof AuthChannelIdIF) {
((AuthChannelIdIF) chanId).setAuth(getAuth());
((AuthChannelIdIF) chanId).setSubsource(getSubsource());
}
return chanId;
}
/**
* Sets this instance's data member field values, if object isMutable() == true, to those of the input ChannelId parameter.
* Returns reference to this DataStnChl instance.
*/
public DataStnChl setValues(ChannelIdIF chanId) {
if (! isMutable()) return this;
setSta(chanId.getSta());
setNet(chanId.getNet());
setSeedchan(chanId.getSeedchan());
setLocation(chanId.getLocation());
setChannel(chanId.getChannel());
setChannelsrc(chanId.getChannelsrc());
if (chanId instanceof AuthChannelIdIF) {
setAuth(((AuthChannelIdIF) chanId).getAuth());
setSubsource(((AuthChannelIdIF) chanId).getSubsource());
}
else {
setAuth(null);
setSubsource(null);
}
return this;
}
// Implement AuthChannelIdIF
public String getSta() {
return getStringValue(STA);
}
public String getNet() {
return getStringValue(NET);
}
public String getSeedchan() {
return getStringValue(SEEDCHAN);
}
public String getLocation() {
return getStringValue(LOCATION);
}
public String getChannel() {
return getStringValue(CHANNEL);
}
public String getChannelsrc() {
return getStringValue(CHANNELSRC);
}
public String getAuth() {
return getStringValue(AUTH);
}
public String getSubsource() {
return getStringValue(SUBSOURCE);
}
public void setSta(String sta) {
setValue(STA, sta);
}
public void setNet(String net) {
setValue(NET, net);
}
public void setSeedchan(String seedchan) {
setValue(SEEDCHAN, seedchan);
}
public void setLocation(String location) {
setValue(LOCATION, location);
}
public void setChannel(String channel) {
setValue(CHANNEL, channel);
}
public void setChannelsrc(String channelsrc) {
setValue(CHANNELSRC, channelsrc);
}
public void setAuth(String auth) {
setValue(AUTH, auth);
}
public void setSubsource(String subsource) {
setValue(SUBSOURCE, subsource);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -