Greetings all...
I have a system where I have a constants class in Perl like so:
package FooConstants;
## ISA exporter and so on...
use constant TYPE_BAR => 'bar';
use constant TYPE_BAZ => 'baz';
## etc...
Which is fine... the constants are handy, self-documenting, and keep me from making typos. Problem: I have this Java interface class they have to stay in sync with, like so:
// Note-- Java code. Heresy! Heresy!
public interface FooConstants {
public static final String TYPE_BAR = "bar";
public static final String TYPE_BAZ = "baz";
//... etc...
}
I'm expecting to have to add types to these classes on a relatively frequent basis, but the two have to stay in sync or chaos will ensue. How can I keep the data for both the files in the same place, so I don't run the risk of them going out of sync? I can think of a couple of ways to do it:
- I can maintain a list of all my constants in some independent format-- XML maybe, or just a text file-- and generate both my Java class and my Perl module from a Makefile (or Ant equivalent.)
- I could keep the list in independent format as above, but have the Perl module autogenerate the constants it needs from that file directly. I'd need to reengineer the Java stuff to do the same thing, meaning replacing my constants with method calls.
- I could write a Java antfile function to generate the Perl module from the Java class.
- I could write a Perl script to generate the Java class from the Perl module.
- I could delegate the whole thing to somebody else.
What's the best way to handle this? I just know there's a trap in here someplace, and I'm doing my best to avoid it. Any advice would be greatly appreciated.
stephen
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.