CORBA-JAVA
view release on metacpan or search on metacpan
lib/CORBA/JAVA/NameVisitor.pm view on Meta::CPAN
$self->{pkg_prefix} = {};
if (defined $prefix) {
foreach (split /;/, $prefix) {
my @kv = split /=/, $_;
if (scalar(@kv) == 2) {
$self->{pkg_prefix}->{$kv[0]} = $kv[1];
}
}
}
$self->{pkg_translate} = {};
if (defined $translate) {
foreach (split /;/, $translate) {
my @kv = split /=/, $_;
if (scalar(@kv) == 2) {
next if ($kv[0] eq 'org' or $kv[0] eq 'org.omg' or $kv[0] =~ /^org\.omg\./);
$self->{pkg_translate}->{$kv[0]} = $kv[1];
}
}
}
$self->{java_keywords} = {
# The keywords in the Java Language :
# (from the Java Language Specification 1.0 First Edition, Section 3.9)
'abstract' => 1,
'boolean' => 1,
'break' => 1,
'byte' => 1,
'case' => 1,
'catch' => 1,
'char' => 1,
'class' => 1,
'const' => 1,
'continue' => 1,
'default' => 1,
'do' => 1,
'double' => 1,
'else' => 1,
'extends' => 1,
'final' => 1,
'finally' => 1,
'float' => 1,
'for' => 1,
'goto' => 1,
'if' => 1,
'implements' => 1,
'import' => 1,
'instanceof' => 1,
'int' => 1,
'interface' => 1,
'long' => 1,
'native' => 1,
'new' => 1,
'package' => 1,
'private' => 1,
'protected' => 1,
'public' => 1,
'return' => 1,
'short' => 1,
'static' => 1,
'super' => 1,
'switch' => 1,
'synchronized' => 1,
'this' => 1,
'throw' => 1,
'throws' => 1,
'transcient' => 1,
'try' => 1,
'void' => 1,
'volatile' => 1,
'while' => 1,
# additionnal Java constant
'true' => 1,
'false' => 1,
'null' => 1,
# methods on java.lang.Object
# (from the Java Language Specification 1.0 First Edition, Section 20.1)
'clone' => 1,
'equals' => 1,
'finalize' => 1,
'getClass' => 1,
'hashCode' => 1,
'notify' => 1,
'notifyAll' => 1,
'toString' => 1,
'wait' => 1
};
return $self;
}
sub _get_defn {
my $self = shift;
my ($defn) = @_;
if (ref $defn) {
return $defn;
}
else {
return $self->{symbtab}->Lookup($defn);
}
}
sub _get_name {
my $self = shift;
my ($node) = @_;
my $name = $node->{idf};
$name =~ s/^_get_//;
$name =~ s/^_set_//;
return '_' . $name if (exists $self->{java_keywords}->{$name});
return '_' . $name if ($name =~ /Helper$/);
return '_' . $name if ($name =~ /Holder$/);
return '_' . $name if ($name =~ /Operations$/);
return '_' . $name if ($name =~ /POA$/);
return '_' . $name if ($name =~ /POATie$/);
return '_' . $name if ($name =~ /Package$/);
return $name;
}
sub _get_pkg {
my $self = shift;
my ($node) = @_;
my $pkg = $node->{full};
$pkg =~ s/::[0-9A-Z_a-z]+$//;
return q{} unless ($pkg);
( run in 0.831 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )