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 )