CORBA-JAVA

 view release on metacpan or  search on metacpan

lib/CORBA/JAVA/ClassXmlVisitor.pm  view on Meta::CPAN

    print $FH "    write (\$os, value, \"",$node->{xsd_name},"\");\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static void write (",$self->{xml_pkg},"OutputStream \$os, ",$node->{java_Name}," value, java.lang.String tag)\n";
    print $FH "  {\n";
    print $FH "    \$os.write_open_tag (tag);\n";
    print $FH "    ",$dis->{java_write_xml},"value.discriminator (), \"discriminator\");\n";
    if ($effective_dis->isa('EnumType')) {
        print $FH "    switch (value.discriminator ().value ())\n";
    }
    else {
        print $FH "    switch (value.discriminator ())\n";
    }
    print $FH "    {\n";
    $idx = 0;
    foreach my $case (@{$node->{list_expr}}) {
        foreach (@{$case->{list_label}}) {  # default or expression
            if ($_->isa('Default')) {
                print $FH "      default:\n";
            }
            else {
                print $FH "      case ",$_->{java_literal},":\n";
            }
        }
        my $elt = $case->{element};
        my $value = $self->_get_defn($elt->{value});
        $self->_member_helperXML_write($value, $node, \$idx);
        print $FH "        break;\n";
    }
    if (exists $node->{need_default}) {
        print $FH "      default:\n";
        print $FH "        throw new org.omg.CORBA.BAD_OPERATION ();\n";
    }
    print $FH "    }\n";
    print $FH "    \$os.write_close_tag (tag);\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "}\n";
    close $FH;
}

#   3.11.2.4    Enumerations
#

sub _enum_helperXML {
    my ($self, $node) = @_;

    $self->open_stream($node, 'HelperXML.java');
    my $FH = $self->{out};
    print $FH "abstract public class ",$node->{java_name},"HelperXML\n";
    print $FH "{\n";
    print $FH "\n";
    print $FH "  public static ",$node->{java_Name}," read (",$self->{xml_pkg},"InputStream \$is)\n";
    print $FH "  {\n";
    print $FH "    return read (\$is, \"",$node->{xsd_name},"\");\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static ",$node->{java_Name}," read (",$self->{xml_pkg},"InputStream \$is, java.lang.String tag)\n";
    print $FH "  {\n";
    print $FH "    \$is.read_open_tag (tag);\n";
    print $FH "    java.lang.String str = \$is.read_pcdata ();\n";
    print $FH "    \$is.read_close_tag (tag);\n";
    foreach (@{$node->{list_expr}}) {
        print $FH "    if (str.equals (\"",$_->{java_name},"\"))\n";
        print $FH "      return ",$_->{java_Name},";\n";
    }
    print $FH "    throw new org.omg.CORBA.BAD_PARAM ();\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static void write (",$self->{xml_pkg},"OutputStream \$os, ",$node->{java_Name}," value)\n";
    print $FH "  {\n";
    print $FH "    write (\$os, value, \"",$node->{xsd_name},"\");\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static void write (",$self->{xml_pkg},"OutputStream \$os, ",$node->{java_Name}," value, java.lang.String tag)\n";
    print $FH "  {\n";
    print $FH "    \$os.write_open_tag (tag);\n";
    print $FH "    \$os.write_pcdata (value.toString ());\n";
    print $FH "    \$os.write_close_tag (tag);\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "}\n";
    close $FH;
}

#
#   3.12    Exception Declaration
#

sub _exception_helperXML {
    my ($self, $node) = @_;

    $self->open_stream($node, 'HelperXML.java');
    my $FH = $self->{out};
    print $FH "abstract public class ",$node->{java_name},"HelperXML\n";
    print $FH "{\n";
    print $FH "\n";
    print $FH "  public static ",$node->{java_Name}," read (",$self->{xml_pkg},"InputStream \$is)\n";
    print $FH "  {\n";
    print $FH "    return read (\$is, \"",$node->{xsd_name},"\");\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static ",$node->{java_Name}," read (",$self->{xml_pkg},"InputStream \$is, java.lang.String tag)\n";
    print $FH "  {\n";
    print $FH "    ",$node->{java_Name}," value = new ",$node->{java_Name}," ();\n";
    print $FH "    \$is.read_open_tag (tag);\n";
    my $idx = 0;
    foreach (@{$node->{list_member}}) {
        my $member = $self->_get_defn($_);
        $self->_member_helperXML_read($member, $node, \$idx);
    }
    print $FH "    \$is.read_close_tag (tag);\n";
    print $FH "    return value;\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static void write (",$self->{xml_pkg},"OutputStream \$os, ",$node->{java_Name}," value)\n";
    print $FH "  {\n";
    print $FH "    write (\$os, value, \"",$node->{xsd_name},"\");\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "  public static void write (",$self->{xml_pkg},"OutputStream \$os, ",$node->{java_Name}," value, java.lang.String tag)\n";
    print $FH "  {\n";
    print $FH "    \$os.write_open_tag (tag);\n";
    $idx = 0;
    foreach (@{$node->{list_member}}) {
        my $member = $self->_get_defn($_);
        $self->_member_helperXML_write($member, $node, \$idx);
    }
    print $FH "    \$os.write_close_tag (tag);\n";
    print $FH "  }\n";
    print $FH "\n";
    print $FH "}\n";
    close $FH;
}

1;



( run in 0.949 second using v1.01-cache-2.11-cpan-98e64b0badf )