This document contains a quick reference of Java functions and methods along with their equivalence in Progress4GL.
| Description | Java | Progress4GL |
|---|---|---|
| Flow control | ||
| If |
if( true ) {
.......
} else if ( true ) {
.......
} else {
.......
}
|
IF true THEN DO:
.......
END.
ELSE IF true THEN DO:
.......
END.
ELSE DO:
.......
END.
|
| Loop |
for( int i = 0; i < 10; i++ ) {
........
continue;
........
break;
........
}
|
DEF VAR i AS INT NO-UNDO.
DO i = 1 TO 10 :
........
NEXT.
........
LEAVE.
........
END.
|
| While |
int i = 0;
while( i < 10 ) {
i++;
}
|
DEF VAR i AS INT INIT 0 NO-UNDO. DO WHILE i < 10 : i = i + 1. END. |
| Switch/Case |
int i;
switch (customType) {
case 1 :
.......
break;
case 2 :
.......
break;
default:
.......
break;
}
|
DEF VAR i AS INT NO-UNDO.
CASE i :
WHEN 1 THEN
DO:
.......
END.
WHEN 2 THEN
DO:
.......
END.
OTHERWISE
DO:
.......
END.
END CASE.
|
| File I/O | ||
| Write to file |
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.IOException;
String fileEncoding = "windows-1250";
String fileName = "testfile.txt";
String line = null;
try {
FileOutputStream fos = new FileOutputStream(new File( fileName ));
OutputStreamWriter osw = new OutputStreamWriter(fos, fileEncoding);
PrintWriter out_file = new PrintWriter(osw);
out_file.println( "Hello, world!" );
if (out_file != null) out_file.close();
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
|
DEF VAR fileEncoding AS CHAR INITIAL "1250" NO-UNDO. DEF VAR v_fileName AS CHAR INITIAL "testfile.txt" NO-UNDO. DEF VAR v_line AS CHAR NO-UNDO. DEF STREAM s_out. OUTPUT STREAM s_out TO VALUE( v_fileName ) CONVERT TARGET fileEncoding. PUT STREAM s_out UNFORMATTED "Hello, world!" SKIP. OUTPUT STREAM s_out CLOSE. |
| Read file |
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
String fileEncoding = "windows-1250";
String fileName = "testfile.txt";
String line = null;
try {
FileInputStream fis = new FileInputStream(new File( fileName ));
InputStreamReader isr = new InputStreamReader(fis, fileEncoding);
BufferedReader in = new BufferedReader(isr);
while( (line = in.readLine()) != null) {
....
}
if( in != null ) in.close();
} catch (IOException e) {
System.err.println("IOException: " + e.getMessage());
}
|
DEF VAR fileEncoding AS CHAR INITIAL "1250" NO-UNDO. DEF VAR v_fileName AS CHAR INITIAL "testfile.txt" NO-UNDO. DEF VAR v_line AS CHAR NO-UNDO. DEF STREAM s_in. INPUT STREAM s_in FROM VALUE( v_fileName ) CONVERT SOURCE fileEncoding. REPEAT: IMPORT STREAM s_in UNFORMATTED v_line. .... END. INPUT STREAM s_in CLOSE. |
| String manipulation | ||
| Equals |
String str1 = "Jane"; String str2 = "Mary"; if( str1.equals(str2) ) |
DEF VAR str1 AS CHAR INITIAL "Jane" NO-UNDO. DEF VAR str2 AS CHAR INITIAL "Mary" NO-UNDO. IF str1 = str2 THEN |
| Substring |
String str; String sub1; String sub2; str = "Hello, world!"; sub1 = str.substring(3,5); // lo sub2 = str.substring(7); // world! |
DEF VAR str AS CHAR NO-UNDO. DEF VAR sub1 AS CHAR NO-UNDO. DEF VAR sub2 AS CHAR NO-UNDO. str = "Hello, world!". sub1 = SUBSTRING( str, 4, 2 ). /* lo */ sub2 = SUBSTRING( str, 8 ). /* world1 */ |
| Replace |
String str; String str1; str = "Hello, world!"; str1 = str.replaceAll( "world", "Jane"); |
DEF VAR str AS CHAR NO-UNDO. DEF VAR str1 AS CHAR NO-UNDO. str = "Hello, world!". str1 = REPLACE( str, "world", "Jane" ). |
| Break into pieces |
String listOfValue = "Jane;Mary;Virginia;Julia";
String[] listOfValueSplitted = listOfValue.split(";");
for( int i = 0; i < listOfValueSplitted.length; i++ ) {
System.out.println( listOfValueSplitted[i] );
}
|
DEF VAR i AS INT NO-UNDO.
DEF VAR listOfValue AS CHAR
INITIAL "Jane;Mary;Virginia;Julia" NO-UNDO.
DO i = 1 TO NUM-ENTRIES( listOfValue, ";" ):
DISPLAY ENTRY( i, listOfValue, ";" ).
END.
|
| Other methods |
indexOf lastIndexOf length matches startsWith toLowerCase toUpperCase trim |
INDEX R-INDEX LENGTH MATCHES BEGIN LC CAPS TRIM |
| Conversions | ||
| Numbers to strings |
int i; Integer j; j.toString() String.valueOf( i ) |
STRING( i ) |
| Strings to numbers |
String s = "7";
try {
int i = Integer.parseInt( s );
} catch (NumberFormatException e) {
System.err.println("NumberFormatException: " + e.getMessage());
}
|
INTEGER( s ) |
| ASCII to string |
char b = 9; String.valueOf(b) Character.toString(b) |
CHR( 9 ) |
| Date to string |
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
GregorianCalendar date = new GregorianCalendar();
String dateStr = formatter.format(date.getTime());
|
STRING( TODAY, "9999-99-99" ) |
| Time to string |
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
GregorianCalendar greCal = new GregorianCalendar();
String timeStr = formatter.format(greCal.getTime());
|
STRING( TIME, "HH:MM:SS" ) |
| String to date |
import java.text.*;
import java.util.GregorianCalendar;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
GregorianCalendar greCal = new GregorianCalendar();
try {
greCal.setTime( formatter.parse( "2005-12-31" ) );
} catch(ParseException ex) {
System.err.println("ParseException: " + ex.getMessage());
}
|
DATE(INT("12"),INT("31"),INT("2005"))
|
| String to time |
import java.text.*;
import java.util.GregorianCalendar;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
GregorianCalendar greCal = new GregorianCalendar();
try {
greCal.setTime( formatter.parse( "23:59:12" ) );
} catch(ParseException ex) {
System.err.println("ParseException: " + ex.getMessage());
}
|
|
| Timestamp and Gregorian Calendar |
import java.text.*;
import java.util.GregorianCalendar;
java.sql.Timestamp timestampValue = rs.getTimestamp( "timestampValue" );
System.out.println( timestampValue );
// Convert Timestamp to GregorianCalendar
GregorianCalendar greCal = new GregorianCalendar();
greCal.setTime( timestampValue );
// Convert GregorianCalendar to String
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String greCalString = formatter.format( greCal.getTime() );
System.out.println( greCalString );
// Convert String to GregorianCalendar
try {
greCal.setTime( formatter.parse( greCalString ) );
} catch(ParseException ex) {
System.err.println("ParseException: " + ex.getMessage());
}
// Convert GregorianCalendar to Timestamp
timestampValue.setTime( greCal.getTimeInMillis() );
System.out.println( timestampValue );
|
|
| Date to Gregorian Calendar |
import java.text.*; import java.util.GregorianCalendar; java.util.Date date = new java.util.Date(); GregorianCalendar greCal = new GregorianCalendar(); greCal.setTime( date ); |
|
| Date and time to int |
import java.text.*; import java.util.Calendar; import java.util.GregorianCalendar; GregorianCalendar calendar = new GregorianCalendar(); |
DEF VAR v_date AS DATE NO-UNDO. DEF VAR v_time AS INT NO-UNDO. v_date = TODAY. v_time = TIME. |
| YEAR | calendar.get(Calendar.YEAR) |
YEAR(v_date) |
| MONTH | calendar.get(Calendar.MONTH) + 1 |
MONTH(v_date) |
| WEEK OF YEAR | calendar.get(Calendar.WEEK_OF_YEAR) |
|
| WEEK OF MONTH | calendar.get(Calendar.WEEK_OF_MONTH) |
|
| DAY OF MONTH | calendar.get(Calendar.DAY_OF_MONTH) |
DAY(v_date) |
| DAY OF YEAR | calendar.get(Calendar.DAY_OF_YEAR) |
|
| DAY OF WEEK | calendar.get(Calendar.DAY_OF_WEEK) |
WEEKDAY(v_date) |
| DAY OF WEEK IN MONTH | calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) |
|
| AM PM | calendar.get(Calendar.AM_PM) |
|
| HOUR | calendar.get(Calendar.HOUR) |
|
| HOUR OF DAY | calendar.get(Calendar.HOUR_OF_DAY) |
|
| MINUTE | calendar.get(Calendar.MINUTE) |
|
| SECOND | calendar.get(Calendar.SECOND) |
|
Enjoy!
Tomasz Judycki