test_class.file: cord3c-ssi-api/src/test/java/io/cord3c/ssi/api/vc/VerifiableCredentialTest.java
test_class.identifier: VerifiableCredentialTest
test_class.interfaces: implements WithAssertions
test_case.body: @Test
  	public void verifyHashLink() {
  		VerifiableCredential credential = generateMockCredentials();
  		String link = credential.toHashLink();
  
  		// we have a hash here to ensure serialization does not change, otherwise
  		// when you have to update this, make sure to maintain backward compatibility
  		assertThat(link).isEqualTo("http://mock.io/credentials/foo?hl=zQmQ9xCX64zLibHoJGafzR9vzmGySrgKZmomYQVCoNQxYhC");
  	}
test_case.class_method_signature: VerifiableCredentialTest.verifyHashLink()
test_case.full_signature: @Test public void verifyHashLink()
test_case.identifier: verifyHashLink
test_case.invocations: generateMockCredentials toHashLink isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void verifyHashLink()
focal_class.declarator: mapper = new ObjectMapper()
  			.enable(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)
  			.findAndRegisterModules()
focal_class.modifier: private static
focal_class.original_string: private static ObjectMapper mapper = new ObjectMapper()
  			.enable(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)
  			.findAndRegisterModules();
focal_class.type: ObjectMapper
focal_class.var_name: mapper
focal_class.declarator: writer = mapper.writerWithDefaultPrettyPrinter()
focal_class.modifier: private static
focal_class.original_string: private static ObjectWriter writer = mapper.writerWithDefaultPrettyPrinter();
focal_class.type: ObjectWriter
focal_class.var_name: writer
focal_class.declarator: contexts = new ArrayList<>()
focal_class.modifier: @JsonProperty(value = "@context")
  	private
focal_class.original_string: @JsonProperty(value = "@context")
  	private List<String> contexts = new ArrayList<>();
focal_class.type: List<String>
focal_class.var_name: contexts
focal_class.declarator: id
focal_class.modifier: private
focal_class.original_string: private String id;
focal_class.type: String
focal_class.var_name: id
focal_class.declarator: types = new ArrayList<>()
focal_class.modifier: @JsonProperty(value = "type")
  	private
focal_class.original_string: @JsonProperty(value = "type")
  	private List<String> types = new ArrayList<>();
focal_class.type: List<String>
focal_class.var_name: types
focal_class.declarator: issuer
focal_class.modifier: private
focal_class.original_string: private String issuer;
focal_class.type: String
focal_class.var_name: issuer
focal_class.declarator: issuanceDate
focal_class.modifier: @JsonSerialize(using = ToStringSerializer.class)
  	private
focal_class.original_string: @JsonSerialize(using = ToStringSerializer.class)
  	private Instant issuanceDate;
focal_class.type: Instant
focal_class.var_name: issuanceDate
focal_class.declarator: expirationDate
focal_class.modifier: @JsonInclude(Include.NON_NULL)
  	@JsonSerialize(using = ToStringSerializer.class)
  	private
focal_class.original_string: @JsonInclude(Include.NON_NULL)
  	@JsonSerialize(using = ToStringSerializer.class)
  	private Instant expirationDate;
focal_class.type: Instant
focal_class.var_name: expirationDate
focal_class.declarator: claims = new LinkedHashMap<>()
focal_class.modifier: @JsonProperty(value = "credentialSubject")
  	private
focal_class.original_string: @JsonProperty(value = "credentialSubject")
  	private Map<String, JsonNode> claims = new LinkedHashMap<>();
focal_class.type: Map<String, JsonNode>
focal_class.var_name: claims
focal_class.declarator: proof
focal_class.modifier: @JsonInclude(Include.NON_NULL)
  	@Setter
  	private
focal_class.original_string: @JsonInclude(Include.NON_NULL)
  	@Setter
  	private Proof proof;
focal_class.type: Proof
focal_class.var_name: proof
focal_class.file: cord3c-ssi-api/src/main/java/io/cord3c/ssi/api/vc/VerifiableCredential.java
focal_class.identifier: VerifiableCredential
focal_class.class_method_signature: VerifiableCredential.isSigned()
focal_class.full_signature: @JsonIgnore public boolean isSigned()
focal_class.identifier: isSigned
focal_class.modifiers: @JsonIgnore public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isSigned()
focal_class.class_method_signature: VerifiableCredential.validate()
focal_class.full_signature: public void validate()
focal_class.identifier: validate
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void validate()
focal_class.class_method_signature: VerifiableCredential.toJsonString()
focal_class.full_signature: @SneakyThrows public String toJsonString()
focal_class.identifier: toJsonString
focal_class.modifiers: @SneakyThrows public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toJsonString()
focal_class.class_method_signature: VerifiableCredential.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: VerifiableCredential.format(String json)
focal_class.full_signature: private String format(String json)
focal_class.identifier: format
focal_class.modifiers: private
focal_class.parameters: (String json)
focal_class.return: String
focal_class.signature: String format(String json)
focal_class.class_method_signature: VerifiableCredential.fromJson(File jsonFile)
focal_class.full_signature: @SneakyThrows public static VerifiableCredential fromJson(File jsonFile)
focal_class.identifier: fromJson
focal_class.modifiers: @SneakyThrows public static
focal_class.parameters: (File jsonFile)
focal_class.return: VerifiableCredential
focal_class.signature: VerifiableCredential fromJson(File jsonFile)
focal_class.class_method_signature: VerifiableCredential.fromJson(String jsonString)
focal_class.full_signature: @SneakyThrows public static VerifiableCredential fromJson(String jsonString)
focal_class.identifier: fromJson
focal_class.modifiers: @SneakyThrows public static
focal_class.parameters: (String jsonString)
focal_class.return: VerifiableCredential
focal_class.signature: VerifiableCredential fromJson(String jsonString)
focal_class.class_method_signature: VerifiableCredential.clone()
focal_class.full_signature: @Override public VerifiableCredential clone()
focal_class.identifier: clone
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: VerifiableCredential
focal_class.signature: VerifiableCredential clone()
focal_class.class_method_signature: VerifiableCredential.toHashLink()
focal_class.full_signature: @SneakyThrows public String toHashLink()
focal_class.identifier: toHashLink
focal_class.modifiers: @SneakyThrows public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toHashLink()
focal_class.class_method_signature: VerifiableCredential.toHashId()
focal_class.full_signature: public String toHashId()
focal_class.identifier: toHashId
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toHashId()
focal_method.body: @SneakyThrows
  	public String toHashLink() {
  		return id + "?hl=" + toHashId();
  	}
focal_method.class_method_signature: VerifiableCredential.toHashLink()
focal_method.full_signature: @SneakyThrows public String toHashLink()
focal_method.identifier: toHashLink
focal_method.invocations: toHashId
focal_method.modifiers: @SneakyThrows public
focal_method.parameters: ()
focal_method.return: String
focal_method.signature: String toHashLink()