MCPcopy Create free account
hub / github.com/cedar-policy/cedar-java / new

Method new

CedarJavaFFI/src/objects.rs:54–80  ·  view source on GitHub ↗

Build a new java object

(
        env: &mut JNIEnv<'a>,
        basename: JString<'a>,
        namespace: List<'a, JString<'a>>,
    )

Source from the content-addressed store, hash-verified

52impl<'a> JEntityTypeName<'a> {
53 /// Build a new java object
54 pub fn new(
55 env: &mut JNIEnv<'a>,
56 basename: JString<'a>,
57 namespace: List<'a, JString<'a>>,
58 ) -> Result<Self> {
59 let jstr_basename = env.get_string(&basename)?;
60 let basename_str = String::from(jstr_basename);
61 let mut full_type_name: Vec<String> = jstr_list_to_rust_vec(env, &namespace)?;
62 full_type_name.push(basename_str);
63 let has_namespace_component_with_colon = full_type_name.iter().any(|s| s.contains("::"));
64 if has_namespace_component_with_colon {
65 return Err("components of the type name cannot contain colons".into());
66 }
67 let full_ns_str: String = full_type_name.join("::");
68 let type_name: EntityTypeName = full_ns_str.parse()?;
69 let obj = env
70 .new_object(
71 "com/cedarpolicy/value/EntityTypeName",
72 "(Ljava/util/List;Ljava/lang/String;)V",
73 &[
74 JValueGen::Object(namespace.as_ref()),
75 JValueGen::Object(basename.as_ref()),
76 ],
77 )
78 .unwrap();
79 Ok(Self { obj, type_name })
80 }
81
82 /// Get the string representation for this EntityTypeName
83 pub fn get_string_repr(&self) -> String {

Callers

nothing calls this directly

Calls 6

jstr_list_to_rust_vecFunction · 0.85
ObjectInterface · 0.85
iterMethod · 0.80
containsMethod · 0.80
parseMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected