|
Step 2: Define the format for the parameter file
We chose to define the parameter file in XML format. It could
just as well be in Java property-file format, but XML is more
flexible and it's so easy to define a hierarchy. The three plug-
ins are defined as three XML elements:
<?xml version="1.0"?>
<root>
<Read class="Java package and class name"
...attributes... />
<Transform class="Java package and class name"
...attributes... />
<Write class="Java package and class name"
...attributes... />
</root>
Each plug-in tag (Read,
Transform and Write) has a class-attribute, which gives
the full Java class name for the plug-in. Other attributes in
the plug-in tags may be used for options used by the specific
plug-in. With a parameter file like this it's possible for the
driver to instantiate the given classes. It's the job of the
plug-ins to continue by fetching the options in the file.
Step 3: Define Interfaces
The next thing to do is to define the Java
Interfaces for the plug-ins that we will use. Our
case calls for three Interfaces:
- the temperature reader
- the data transformer
- the temperature writer
You may set up the interfaces in several ways, according to what
your specific situation and needs are. I've chosen the following
definitions:
The temperature reader delivers data as a
List of Strings from the
receive method. The format for each
String is city=temperature, for example:
CPH=36
The reader Interface will also need a method,
initialize, used to extract the options given as
XML attributes in the parameter file:
Listing 1: The IReceive Interface
public interface IReceive {
public List receive()
throws Exception;
public void initialize(Element e) throws Exception;
}
The data transformer takes the List of
Strings from the reader and converts the
city=temperature format to some other format, for example a
sentence like "The temperature in CPH is
40":
Listing 2: The ITransform Interface
public interface ITransform {
public List transform(List data);
public void initialize(Element e) throws Exception;
}
The initialize method has the same function
as the reader.
The temperature writer finally takes the
List from the transformer and sends it to the
target(s):
Listing 3: The ISend Interface
public interface ISend {
public void send(List data) throws Exception;
public void initialize(Element e) throws Exception;
}
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|