
edition = "2023";

package utf8validation.edition2023;

import "google/protobuf/java_features.proto";

option java_package = "com.google.protobuf.utf8validation";
option java_outer_classname = "Utf8TestEdition2023Proto";
option java_multiple_files = true;

// Naming convention for test fields:
// global_[features.utf8_validation state {unset, verify,
// none}]_java_[features.(pb.java).utf8_validation state {unset, verify,
// default}]
message Utf8TestEdition2023 {
  // Regular fields
  string global_unset_java_unset = 1;

  string global_unset_java_default = 2
      [features.(pb.java).utf8_validation = DEFAULT];

  string global_unset_java_verify = 3
      [features.(pb.java).utf8_validation = VERIFY];

  string global_verify_java_unset = 4 [features.utf8_validation = VERIFY];

  string global_verify_java_default = 5 [
    features.utf8_validation = VERIFY,
    features.(pb.java).utf8_validation = DEFAULT
  ];

  string global_verify_java_verify = 6 [
    features.utf8_validation = VERIFY,
    features.(pb.java).utf8_validation = VERIFY
  ];

  string global_none_java_unset = 7 [features.utf8_validation = NONE];

  string global_none_java_default = 8 [
    features.utf8_validation = NONE,
    features.(pb.java).utf8_validation = DEFAULT
  ];

  string global_none_java_verify = 9 [
    features.utf8_validation = NONE,
    features.(pb.java).utf8_validation = VERIFY
  ];

  extensions 100 to 200;
}

extend Utf8TestEdition2023 {
  string ext_global_unset_java_unset = 101;

  string ext_global_unset_java_default = 102
      [features.(pb.java).utf8_validation = DEFAULT];

  string ext_global_unset_java_verify = 103
      [features.(pb.java).utf8_validation = VERIFY];

  string ext_global_verify_java_unset = 104 [features.utf8_validation = VERIFY];

  string ext_global_verify_java_default = 105 [
    features.utf8_validation = VERIFY,
    features.(pb.java).utf8_validation = DEFAULT
  ];

  string ext_global_verify_java_verify = 106 [
    features.utf8_validation = VERIFY,
    features.(pb.java).utf8_validation = VERIFY
  ];

  string ext_global_none_java_unset = 107 [features.utf8_validation = NONE];

  string ext_global_none_java_default = 108 [
    features.utf8_validation = NONE,
    features.(pb.java).utf8_validation = DEFAULT
  ];

  string ext_global_none_java_verify = 109 [
    features.utf8_validation = NONE,
    features.(pb.java).utf8_validation = VERIFY
  ];
}
