This section shows the simple Java classes that this chapter uses to illustrate Java in Adaptive Server.
This is the Address class:
//
// Copyright (c) 2005
// Sybase, Inc
// Dublin, CA 94568
// All Rights Reserved
//
/**
* A simple class for address data, to illustrate using a Java class * as a SQL datatype.
*/
public class Address implements java.io.Serializable {
/**
* The street data for the address. * @serial A simple String value. */ public String street; /** * The zipcode data for the address. * @serial A simple String value. */ String zip; /** A default constructor.
*/
public Address ( ) {
street = "Unknown";
zip = "None";
}
/**
* A constructor with parameters
* @param S a string with the street information
* @param Z a string with the zipcode information
*/
public Address (String S, String Z) {
street = S;
zip = Z;
}
/**
* A method to return a display of the address data.
* @returns a string with a display version of the address data.
*/
public String toString( ) {
return "Street= " + street + " ZIP= " + zip;
}
/**
* A void method to remove leading blanks.
* This method uses the static method
* <code>Misc.stripLeadingBlanks</code>.
*/
public void removeLeadingBlanks( ) {
street = Misc.stripLeadingBlanks(street);
zip = Misc.stripLeadingBlanks(street);
}
}
This is the Address2Line class, which is a subclass of the Address class:
//
// Copyright (c) 2005
// Sybase, Inc
// Dublin, CA 94568
// All Rights Reserved
//
/**
* A subclass of the Address class that adds a seond line of address data, * <p>This is a simple subclass to illustrate using a Java subclass * as a SQL datatype.
*/
public class Address2Line extends Address implements java.io.Serializable {
/**
* The second line of street data for the address.
* @serial a simple String value
*/
String line2;
/**
* A default constructor
*/
public Address2Line ( ) {
street = "Unknown";
line2 = " ";
zip = "None";
}
/**
* A constructor with parameters.
* @param S a string with the street information
* @param L2 a string with the second line of address data
* @param Z a string with the zipcode information
*/
public Address2Line (String S, String L2, String Z) {
street = S;
line2 = L2;
zip = Z;
}
/**
* A method to return a display of the address data
* @returns a string with a display version of the address data
*/
public String toString( ) {
return "Street= " + street + " Line2= " + line2 + " ZIP= " + zip;
}
/**
* A void method to remove leading blanks.
* This method uses the static method
* <code>Misc.stripLeadingBlanks</code>.
*/
public void removeLeadingBlanks( ) {
line2 = Misc.stripLeadingBlanks(line2);
super.removeLeadingBlanks( );
}
}
The Misc class contains sets of miscellaneous routines:
//
// Copyright (c) 2005
// Sybase, Inc
// Dublin, CA 94568
// All Rights Reserved
//
/**
* A non-instantiable class with miscellaneous static methods * that illustrate the use of Java methods in SQL. */
public class Misc{
/**
* The Misc class contains only static methods and cannot be instantiated.
*/
private Misc( ) { }
/**
* Removes leading blanks from a String
*/
public static String stripLeadingBlanks(String s) {
if (s == null) return null;
for (int scan=0; scan<s.length( ); scan++)
if (!java.lang.Character.isWhitespace(s.charAt(scan) ))
break;
} else if (scan == s.length( )){
return "";
} else return s.substring(scan);
}
}
}
return "";
}
/**
* Extracts the street number from an address line.
* e.g., Misc.getNumber(" 123 Main Street") == 123
* Misc.getNumber(" Main Street") == 0
* Misc.getNumber("") == 0
* Misc.getNumber(" 123 ") == 123
* Misc.getNumber(" Main 123 ") == 0
* @param s a string assumed to have address data
* @return a string with the extracted street number
*/
public static int getNumber (String s) {
String stripped = stripLeadingBlanks(s);
if (s==null) return -1;
for(int right=0; right < stripped.length( ); right++){
if (!java.lang.Character.isDigit(stripped.charAt(right))) {
break;
} else if (right==0){
return 0;
} else {
return java.lang.Integer.parseInt
(stripped.substring(0, right), 10);
}
}
return -1;
}
/**
* Extract the "street" from an address line.
* e.g., Misc.getStreet(" 123 Main Street") == "Main Street"
* Misc.getStreet(" Main Street") == "Main Street"
* Misc.getStreet("") == ""
* Misc.getStreet(" 123 ") == ""
* Misc.getStreet(" Main 123 ") == "Main 123"
* @param s a string assumed to have address data
* @return a string with the extracted street name
*/
public static String getStreet(String s) {
int left;
if (s==null) return null;
for (left=0; left<s.length( ); left++){
if(java.lang.Character.isLetter(s.charAt(left))) {
break;
} else if (left == s.length( )) {
return "";
} else {
return s.substring(left);
}
}
return "";
}
}