Skip to content

Commit

Permalink
Minor improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
filip26 committed Aug 25, 2024
1 parent b602f4d commit efb5f7a
Show file tree
Hide file tree
Showing 17 changed files with 43 additions and 30 deletions.
Binary file modified doc/ltdm-0.0.1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main/java/com/apicatalog/linkedtree/LinkedLiteral.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ default LinkedLiteral asLiteral() {
*
* @return lexical value, never <code>null</code>
*/
String value();
String lexicalValue();

/**
* An absolute IRI denoting the datatype IRI of the literal.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static JsonDecimal of(jakarta.json.JsonNumber jsonNumber, String datatype
}

@Override
public String value() {
public String lexicalValue() {
return xsdNumberFormat.format(json.bigDecimalValue());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static JsonInteger of(jakarta.json.JsonNumber jsonNumber, String datatype
}

@Override
public String value() {
public String lexicalValue() {
return json.bigIntegerValue().toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static JsonLiteral of(JsonValue value, ProcessingInstruction pi) {
}

@Override
public String value() {
public String lexicalValue() {
if (value == null) {
value = JsonCanonicalizer.canonicalize(json);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public record JsonScalar(
) implements LinkedLiteral {

@Override
public String value() {
public String lexicalValue() {
return jsonValue.toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@
import com.apicatalog.linkedtree.lang.ImmutableLangString;
import com.apicatalog.linkedtree.link.Link;
import com.apicatalog.linkedtree.link.MutableLink;
import com.apicatalog.linkedtree.literal.ImmutableLinkedLiteral;
import com.apicatalog.linkedtree.pi.ProcessingInstruction;
import com.apicatalog.linkedtree.primitive.GenericLinkedContainer;
import com.apicatalog.linkedtree.primitive.GenericLinkedFragment;
import com.apicatalog.linkedtree.primitive.GenericLinkedLiteral;
import com.apicatalog.linkedtree.primitive.GenericLinkedTree;
import com.apicatalog.linkedtree.xsd.XsdConstants;

Expand Down Expand Up @@ -79,7 +79,7 @@ public LinkedTree readExpanded(JsonArray jsonNodes) {
final LinkedTree tree = GenericLinkedTree.of(readNodes(jsonNodes, links), links);

for (final Link link : links.values()) {
((MutableLink) link).target(adapt(((MutableLink) link), mergeTypes(link.fragments()), merge(link.fragments()), null));
((MutableLink) link).target(adapt(((MutableLink) link), mergeTypes(link.refs()), merge(link.refs()), null));
}

return tree;
Expand Down Expand Up @@ -248,7 +248,7 @@ protected LinkedTree readGraph(JsonObject jsonObject) {
}

for (final Link link : links.values()) {
((MutableLink) link).target(adapt(((MutableLink) link), mergeTypes(link.fragments()), merge(link.fragments()), null));
((MutableLink) link).target(adapt(((MutableLink) link), mergeTypes(link.refs()), merge(link.refs()), null));
}

if (id != null) {
Expand Down Expand Up @@ -427,7 +427,7 @@ protected LinkedLiteral readLiteral(final JsonObject valueJsonObject) {
getPi(valueJsonObject, JsonLdKeyword.VALUE, JsonLdKeyword.TYPE, JsonLdKeyword.LANGUAGE));
}

return new GenericLinkedLiteral(
return new ImmutableLinkedLiteral(
valueString,
datatype,
getPi(valueJsonObject, JsonLdKeyword.VALUE, JsonLdKeyword.TYPE));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,18 +122,18 @@ JsonValue writeLiteral(LinkedLiteral literal) {

// 2.4.1.
if (XsdConstants.STRING.equals(literal.datatype())) {
convertedValue = Json.createValue(literal.value());
convertedValue = Json.createValue(literal.lexicalValue());

} else if (literal instanceof JsonScalar jsonScalar) {
convertedValue = jsonScalar.jsonValue();

} else if (XsdConstants.BOOLEAN.equals(literal.datatype())) {

if ("true".equalsIgnoreCase(literal.value())) {
if ("true".equalsIgnoreCase(literal.lexicalValue())) {

convertedValue = JsonValue.TRUE;

} else if ("false".equalsIgnoreCase(literal.value())) {
} else if ("false".equalsIgnoreCase(literal.lexicalValue())) {

convertedValue = JsonValue.FALSE;

Expand All @@ -148,15 +148,15 @@ JsonValue writeLiteral(LinkedLiteral literal) {

} else if (XsdConstants.INTEGER.equals(literal.datatype()) || XsdConstants.INT.equals(literal.datatype()) || XsdConstants.LONG.equals(literal.datatype())) {

convertedValue = Json.createValue(Long.parseLong(literal.value()));
convertedValue = Json.createValue(Long.parseLong(literal.lexicalValue()));

} else if (literal instanceof JsonDecimal jsonDecimal) {

convertedValue = Json.createValue(jsonDecimal.doubleValue());

} else if (XsdConstants.DOUBLE.equals(literal.datatype()) || XsdConstants.FLOAT.equals(literal.datatype())) {

convertedValue = Json.createValue(Double.parseDouble(literal.value()));
convertedValue = Json.createValue(Double.parseDouble(literal.lexicalValue()));

} else if (literal instanceof NumericValue numericValue) {

Expand All @@ -168,7 +168,7 @@ JsonValue writeLiteral(LinkedLiteral literal) {
type = JsonLdKeyword.JSON;

} else if (RdfConstants.JSON.equals(literal.datatype())) {
try (JsonParser parser = Json.createParser(new StringReader(literal.value()))) {
try (JsonParser parser = Json.createParser(new StringReader(literal.lexicalValue()))) {

parser.next();

Expand Down Expand Up @@ -227,7 +227,7 @@ JsonValue writeLiteral(LinkedLiteral literal) {

result.add(JsonLdKeyword.VALUE, (convertedValue != null)
? convertedValue
: Json.createValue(literal.value()));
: Json.createValue(literal.lexicalValue()));

if (type != null) {
result.add(JsonLdKeyword.TYPE, Json.createValue(type));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.apicatalog.linkedtree.pi.ProcessingInstruction;

public record ImmutableLangString(
String value,
String lexicalValue,
String language,
LanguageDirectionType direction,
ProcessingInstruction pi) implements LangString {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/apicatalog/linkedtree/link/Link.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public interface Link {
*
* @return a collection of fragments in a tree
*/
Collection<LinkedFragment> fragments();
Collection<LinkedFragment> refs();

/**
* A fragment composed of all fragments - adapted if an adapter is present
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public String uri() {
}

@Override
public Collection<LinkedFragment> fragments() {
public Collection<LinkedFragment> refs() {
return fragments;
}

Expand Down
11 changes: 11 additions & 0 deletions src/main/java/com/apicatalog/linkedtree/literal/DateTimeValue.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.apicatalog.linkedtree.literal;

import java.time.Instant;

import com.apicatalog.linkedtree.LinkedLiteral;

public interface DateTimeValue extends LinkedLiteral {

Instant datetime();

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.apicatalog.linkedtree.primitive;
package com.apicatalog.linkedtree.literal;

import com.apicatalog.linkedtree.LinkedLiteral;
import com.apicatalog.linkedtree.pi.ProcessingInstruction;

public record GenericLinkedLiteral(
String value,
public record ImmutableLinkedLiteral(
String lexicalValue,
String datatype,
ProcessingInstruction pi) implements LinkedLiteral {

Expand Down
6 changes: 4 additions & 2 deletions src/main/java/com/apicatalog/linkedtree/xsd/XsdDateTime.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
import java.time.Instant;

import com.apicatalog.linkedtree.LinkedLiteral;
import com.apicatalog.linkedtree.literal.DateTimeValue;
import com.apicatalog.linkedtree.pi.ProcessingInstruction;

public class XsdDateTime implements LinkedLiteral {
public class XsdDateTime implements LinkedLiteral, DateTimeValue {

public static final String TYPE = XsdConstants.DATE_TIME;

Expand Down Expand Up @@ -33,6 +34,7 @@ public static XsdDateTime of(Instant datetime, ProcessingInstruction pi) {
return new XsdDateTime(datetime, pi);
}

@Override
public Instant datetime() {
if (datetime == null && value != null) {
// TODO check
Expand All @@ -43,7 +45,7 @@ public Instant datetime() {
}

@Override
public String value() {
public String lexicalValue() {
if (value == null && datetime != null) {
// TODO
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static Base64ByteArray of(String value, ProcessingInstruction pi) {
}

@Override
public String value() {
public String lexicalValue() {
if (value == null && byteArray != null) {
value = Base64.getEncoder().encodeToString(byteArray);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ void base64ByteArray() throws IOException, URISyntaxException {
.cast(ByteArrayValue.class);

assertNotNull(literal);
assertEquals("RW5jb2RlIHRvIEJhc2U2NCBmb3JtYXQ=", literal.value());
assertEquals("RW5jb2RlIHRvIEJhc2U2NCBmb3JtYXQ=", literal.lexicalValue());
assertTrue(literal instanceof ByteArrayValue);
assertArrayEquals("Encode to Base64 format".getBytes(), ((ByteArrayValue) literal).byteArrayValue());

((Base64ByteArray) literal).byteArrayValue("test X".getBytes());
assertEquals("dGVzdCBY", literal.value());
assertEquals("dGVzdCBY", literal.lexicalValue());

JsonArray copy = WRITER.writeExpanded(tree);

Expand Down Expand Up @@ -106,7 +106,7 @@ void verifiableCredential() throws IOException, URISyntaxException {
})), vc.type());

assertEquals(1, vc.name.size());
assertEquals("Alumni Credential", vc.name.single().value());
assertEquals("Alumni Credential", vc.name.single().lexicalValue());
assertNull(vc.name.single().language());

assertEquals(1, vc.name.strings().size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ void singleRootLink() throws IOException, URISyntaxException {
assertNotNull(tree.links());
assertEquals(1, tree.links().size());
assertNotNull(tree.links().iterator().next());
assertNotNull(tree.links().iterator().next().fragments());
assertNotNull(tree.links().iterator().next().refs());
assertNotNull(tree.links().iterator().next().target());
assertTrue(tree.links().iterator().next().target().isFragment());

Expand All @@ -63,7 +63,7 @@ void signedVcLinks() throws IOException, URISyntaxException {
assertNotNull(tree.links());
assertEquals(3, tree.links().size());
assertNotNull(tree.links().iterator().next());
assertNotNull(tree.links().iterator().next().fragments());
assertNotNull(tree.links().iterator().next().refs());
assertNotNull(tree.links().iterator().next().target());
assertTrue(tree.links().iterator().next().target().isFragment());
}
Expand Down

0 comments on commit efb5f7a

Please sign in to comment.