I.1 Why Java? I-1
I.2 Approach of This Book I-3
I.3 Prerequisites for This Book I-4
I.4 Obtaining and Installing Java I-4
I.5 Major Pitfalls of Java on OpenVMS I-7
Chapter 1 Basics of Java
1.1 A Little Bit of History and
Concept 1-1
1.2 Data Types 1-5
1.3 Everything is a Class (almost) 1-7
1.4 Reference not Pointer 1-8
1.5 The Sandbox 1-8
1.6 Garbage Collection 1-9
1.7 No Include Files or Preprocessor 1-10
1.8 Constructors and Finalizers 1-11
1.9 Arithmetic Operators 1-11
1.10 Relational Operators 1-12
1.11 Boolean Operators 1-12
1.12 Bitwise Operators 1-13
1.13 Assignment Operators 1-13
1.14 Comments 1-13
1.15 Abstract Classes and Methods 1-14
1.16 Inheritance 1-14
1.17 Polymorphism 1-17
1.18 Source Code Organization and Style 1-17
1.19 Modifiers for Data Types and Methods 1-18
1.20 Packages 1-21
1.21 Interfaces 1-22
1.22 Threads 1-23
1.23 Exceptions 1-26
1.24 JAVA$CLASSPATH 1-28
1.25 A Little Lecture on Strings and References 1-28
1.26 Java Follow Up 1-30
1.27 Exercises 1-32
Chapter 2 Using RTL and SYS Calls
2.1 Goal of This Chapter 2-1
2.2 Order of Development with JNI 2-1
2.3 Creating Linker Option Files for JNI 2-2
2.4 LibGetLogical 2-8
2.5 Programming Assignment 1 2-18
2.6 VMSLogical 2-19
2.7 Programming Assignment 2 2-25
2.8 VMSDate 2-25
2.9 Programming Assignment 3 2-41
2.10 VMSSpawn 2-41
2.11 Programming Assignment 4 2-45
2.12 Words of Warning About LIB$SPAWN() 2-45
2.13 RTL and SYS Followup 2-46
2.14 Exercises 2-47
Chapter 3 Accessing RMS Indexed Files
3.1 The Choices We Make 3-1
3.2 Building What We Need 3-2
3.3 The Native Interface Code 3-29
3.4 One More Indexed File 3-48
3.5 RMS Followup 3-50
3.6 Programming Assignments 3-51
3.7 Exercises 3-51
Chapter 4 Interfacing With FMS
4.1 Why Use FMS? 4-1
4.2 Our Fms Class 4-2
4.3 FMS Follow Up 4-20
Chapter 5 Building Java Via MMS
5.1 The philosophy 5-1
5.2 Logical Name Table Modifications 5-3
5.3 Build Command File 5-3
5.4 The Infrastructure MMS Procedure 5-6
5.5 Running Our New Classes 5-18
5.6 Programming Assignment 5-19
5.7 Exercises 5-20
Chapter 6 Mega Zillionare Application - RMS
6.1 What to Expect 6-1
6.2 String Dates in Java 6-1
6.3 Importing Data 6-3
6.4 Bulk Reporting Data 6-6
6.5 Creating Our Stats File 6-10
6.6 Programming Assignment 1 6-13
6.7 The Most Report 6-14
6.7 Programming Assignment 2 6-19
6.8 The Due Report 6-19
6.9 Programming Assignment 3 6-23
6.10 The Browse Module 6-23
6.12 The Entry Module 6-32
6.13 The Menu 6-38
6.14 Programming Assignment 5 6-42
Chapter 7 Using the Buffers Directly - RMS2
7.1 The Intention 7-1
7.2 How Hurt Are You? 7-1
7.3 Programming Assignment One 7-2
7.4 Upgrade Before Continuing 7-2
7.5 Our New Java Class 7-3
7.6 Programming Assignment Two 7-14
7.7 The Support and Open Functions 7-14
7.8 Reading Records 7-20
7.9 Programming Assignment Three 7-25
7.10 Updates and Deletes 7-26
7.11 Programming Assignment Four 7-27
7.12 Writing a Record 7-27
7.13 Follow Up 7-28
Chapter 8 RDB Via JDBC
8.1 Setting Things Up 8-1
8.2 A Sample Java Program 8-6
8.3 Programming Assignment One 8-10
8.4 Design Considerations 8-11
8.5 Some Serious Flaws 8-12
8.6 Our Main Program 8-15
8.7 Our Prompt Routine 8-19
8.8 The Import Module 8-19
8.9 Stats Creation 8-22
8.10 The Due Report 8-26
8.11 The Dump Report 8-29
8.12 Our Browse Module 8-32
8.13 Programming Assignment Two 8-40
8.14 The Maintenance Module 8-41
8.15 Programming Assignment Three 8-48
8.16 Programming Assignment Four 8-48
8.17 RDB Follow Up 8-48
8.18 JAR Files 8-49
8.19 Java Follow Up 8-50
Chapter 9 Ruminations
9.1 Vendor Management Systems and
the End of Consulting Firms 9-1
9.2 The Tech Farm 9-4
9.3 Return of the 30-Year System 9-7
9.4 Do You Really Want to Work in IT? 9-13
9.5 Solve the Whole Problem 9-18
9.6 The Mythical Business Analyst 9-23
9.7 The Much Maligned LF/CR 9-29