return;
}
- if (cl.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (cl)) {
return;
}
write_newline ();
write_indent ();
- write_string ("public ");
+ write_accessibility (cl);
if (cl.is_static) {
write_string ("static ");
} else if (cl.is_abstract) {
return;
}
- if (st.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (st)) {
return;
}
write_newline ();
write_indent ();
- write_string ("public struct ");
+ write_accessibility (st);
+ write_string ("struct ");
write_identifier (st.name);
write_begin_block ();
return;
}
- if (iface.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (iface)) {
return;
}
write_newline ();
write_indent ();
- write_string ("public ");
+ write_accessibility (iface);
write_string ("interface ");
write_identifier (iface.name);
return;
}
- if (en.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (en)) {
return;
}
}
write_indent ();
- write_string ("public enum ");
+ write_accessibility (en);
+ write_string ("enum ");
write_identifier (en.name);
write_begin_block ();
return;
}
+ if (!check_accessibility (c)) {
+ return;
+ }
+
write_indent ();
- write_string ("public const ");
+ write_accessibility (c);
+ write_string ("const ");
write_type (c.type_reference);
return;
}
- if (f.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (f)) {
return;
}
}
write_indent ();
- write_string ("public ");
+ write_accessibility (f);
+
if (f.type_reference.data_type != null &&
f.type_reference.data_type.is_reference_type () &&
!f.type_reference.takes_ownership) {
return;
}
- if (cb.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (cb)) {
return;
}
write_indent ();
- write_string ("public static delegate ");
+ write_accessibility (cb);
+ write_string ("static delegate ");
write_return_type (cb.return_type);
return;
}
- if (m.access == SymbolAccessibility.PRIVATE || m.overrides) {
+ if (!check_accessibility (m) || m.overrides) {
return;
}
}
write_indent ();
- write_string ("public");
+ write_accessibility (m);
if (m is CreationMethod) {
- write_string (" ");
var datatype = (Typesymbol) m.parent_symbol;
write_identifier (datatype.name);
write_identifier (m.name.offset (".new".len ()));
+ write_string (" ");
} else if (!m.instance) {
- write_string (" static");
+ write_string ("static ");
} else if (m.is_abstract) {
- write_string (" abstract");
+ write_string ("abstract ");
} else if (m.is_virtual) {
- write_string (" virtual");
+ write_string ("virtual ");
}
if (!(m is CreationMethod)) {
- write_string (" ");
-
write_return_type (m.return_type);
-
write_string (" ");
+
write_identifier (m.name);
+ write_string (" ");
}
- write_string (" ");
-
write_params (m.get_parameters ());
write_error_domains (m.get_error_domains ());
}
public override void visit_property (Property! prop) {
+ if (!check_accessibility (prop)) {
+ return;
+ }
+
if (prop.no_accessor_method) {
write_indent ();
write_string ("[NoAccessorMethod]");
}
write_indent ();
- write_string ("public ");
+ write_accessibility (prop);
+
+ if (prop.is_abstract) {
+ write_string ("abstract ");
+ } else if (prop.is_virtual) {
+ write_string ("virtual ");
+ }
if (!prop.type_reference.takes_ownership) {
write_string ("weak ");
}
}
public override void visit_signal (Signal! sig) {
- if (sig.access == SymbolAccessibility.PRIVATE) {
+ if (!check_accessibility (sig)) {
return;
}
}
write_indent ();
- write_string ("public signal ");
+ write_accessibility (sig);
+ write_string ("signal ");
write_return_type (sig.return_type);
write_indent ();
stream.printf ("}");
}
+
+ private bool check_accessibility (Symbol! sym) {
+ if (sym.access == SymbolAccessibility.PUBLIC ||
+ sym.access == SymbolAccessibility.PROTECTED) {
+ return true;
+ }
+
+ return false;
+ }
+
+ private void write_accessibility (Symbol! sym) {
+ if (sym.access == SymbolAccessibility.PUBLIC) {
+ write_string ("public ");
+ } else if (sym.access == SymbolAccessibility.PROTECTED) {
+ write_string ("protected ");
+ } else {
+ assert_not_reached ();
+ }
+ }
}