jukkaletti

jukkis 20.06.05 21:06

POJO (Plain Old Java Objects) tyyppisten kohdeluokkien (entity classes) generointiin. Enää ei tarvitse koodata, kun tietokone koodaa puolestasi!

 Tekstiversio  Arvo: 1 (3 ääntä)  Äänestä: +  -
#!/usr/bin/perl

# Jukkaletti: _private_ tai _protected attribuuttien perusteella generoitavat
# settirivit, gettirivit, konstruktori ja toString metodi
# korvaa aina olemassaolevat
# KÄYTTÖ: lopeta ohjelman kirjoittaminen viimeisen attribuutin jälkeen
# ja aja sille jukkaletti seuraavasti:
#
# For the impatient:
#
# jukkaletti Puhelin.java
#
# Tuloksena Puhelin.java-tiedostossa metodeilla täydennetty versio.
#
# Copyright Jukka Juslin 2005 -
#
#

$filename = @ARGV[0];
#print $filename;
open(JAVAPROG, "$filename") or die ("Couldn't open the specified file\n");
while(<JAVAPROG>) {
    if(/private|protected/) {
        ($eka, $toka, $kolmas, $neljas) = split(/\s{1,}/, $_);
        push(@words, $kolmas);
        $_ = $neljas;
        s/\;//;
        $neljas = $_;
        push(@words, $neljas);
        push @lines, [@words];
        @words = ();
    }
}
close JAVAPROG;


open(JAVAPROG, ">>$filename") or die ("Couldn't open the specified file\n");
print JAVAPROG "\n";
print JAVAPROG "    // oletuskonstruktori\n";
$_ = $filename;
s/\.java//;
$classname = $_;
print JAVAPROG "    public " . $classname . "() \{\n";
print JAVAPROG "    }";
print JAVAPROG "\n";
print JAVAPROG "\n";
for $i (0 .. $#lines) {
    print JAVAPROG "    public ";
    for $j (0 .. $#{$lines[$i]}) {
        if($j%2==0) {
            print JAVAPROG " $lines[$i][$j]";
            $k = $j+1;
            $alku = uc(substr($lines[$i][$k],0,1));
            $loppu = substr($lines[$i][$k],1,);
            print JAVAPROG " get" . $alku . $loppu;
        }
    }
        }
    }
    print JAVAPROG "() {\n";
    print JAVAPROG "       return(this.$lines[$i][$k]);\n";
    print JAVAPROG "    }\n";
}
for $i (0 .. $#lines) {
    print JAVAPROG "    public void ";
    for $j (0 .. $#{$lines[$i]}) {
        if($j%2==0) {
            #print JAVAPROG " $lines[$i][$j]";
            $k = $j+1;
            $alku = uc(substr($lines[$i][$k],0,1));
            $loppu = substr($lines[$i][$k],1,);
            print JAVAPROG " set" . $alku . $loppu;
        }
    }
    print JAVAPROG "($lines[$i][$j] $lines[$i][$k]) {\n";
    print JAVAPROG "       this.$lines[$i][$k] = $lines[$i][$k];\n";
    print JAVAPROG "    }\n";
}
print JAVAPROG "\n    public String toString() {";
print JAVAPROG "\n       String paluu = ";
for $i (0 .. $#lines) {
    for $j (0 .. $#{$lines[$i]}) {
        if($j%2==0 && $j!=0) {
            $k = $j+1;
            print JAVAPROG " \+ \" \" + $lines[$i][$k] ";
        } elsif($j==0) {
            print JAVAPROG "$lines[$i][$k]";
        }

    }
    if($i != $#lines) {
        print JAVAPROG " + \"  \" + ";
    }
}
print JAVAPROG ";";
print JAVAPROG "\n       return(paluu);\n";
print JAVAPROG "    }\n";
print JAVAPROG "}\n";

close JAVAPROG;
 

renni 01:50 21.6.05 
Hyvä IDE tekee toki saman homman paljon paremmin. Eihän kukaan ilman IDEä koodaile, eihän?
Akiro 23:47 25.6.05 
test
jukkis 06:03 27.6.05 
eikö vim ole tarpeeksi hyvä IDE?
Ztane 17:46 27.6.05 
Kuka pölijä sillä koodaa javaa... kunnon javaide kääntää lennosta ja kertoo virheet suoraan as you write. C onki sitten eri asia.