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 )