diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ActivityBuilder.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ActivityBuilder.kt new file mode 100644 index 0000000..83ae68d --- /dev/null +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ActivityBuilder.kt @@ -0,0 +1,11 @@ +package dev.usbharu.activitystreams.impl.builder + +import dev.usbharu.activitystreams.impl.type.AbstractJsonObjectBuilder +import dev.usbharu.activitystreams.impl.type.BuilderContext +import dev.usbharu.activitystreams.model.core.Activity + +class ActivityBuilder : AbstractJsonObjectBuilder() { + override fun internalBuild(t: Activity, jsonObject: Map, builderContext: BuilderContext) { + + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/CreateBuilder.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/CreateBuilder.kt new file mode 100644 index 0000000..219623a --- /dev/null +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/CreateBuilder.kt @@ -0,0 +1,8 @@ +package dev.usbharu.activitystreams.impl.builder + +import dev.usbharu.activitystreams.impl.type.AbstractJsonObjectBuilder +import dev.usbharu.activitystreams.model.core.Activity +import dev.usbharu.activitystreams.model.core.Object + +class CreateBuilder : AbstractJsonObjectBuilder { +} \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/InternalActivityBuilder.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/InternalActivityBuilder.kt new file mode 100644 index 0000000..ddf95bb --- /dev/null +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/InternalActivityBuilder.kt @@ -0,0 +1,12 @@ +package dev.usbharu.activitystreams.impl.builder + +import dev.usbharu.activitystreams.impl.type.AbstractJsonObjectBuilder +import dev.usbharu.activitystreams.impl.type.BuilderContext +import dev.usbharu.activitystreams.model.core.InternalActivity + +class InternalActivityBuilder : AbstractJsonObjectBuilder() { + override fun internalBuild(t: InternalActivity, jsonObject: Map, builderContext: BuilderContext) { + val typeFactory = builderContext.typeFactory().factory() + t.actor = + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/JsonLdBuilder.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/JsonLdBuilder.kt index fe1702c..4d75f72 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/JsonLdBuilder.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/JsonLdBuilder.kt @@ -5,11 +5,13 @@ import dev.usbharu.activitystreams.impl.type.BuilderContext import dev.usbharu.activitystreams.impl.type.JsonObjectBuilder import dev.usbharu.activitystreams.model.JsonLd import java.net.URI +import java.util.* open class JsonLdBuilder : AbstractJsonObjectBuilder() { override fun internalBuild(t: JsonLd, jsonObject: Map, builderContext: BuilderContext) { t.value = jsonObject["@value"] t.id = jsonObject["@id"]?.toString()?.let { URI.create(it) } t.type = (jsonObject["@type"] as? List).orEmpty().map { URI.create(it) } + t.language = jsonObject["@language"]?.toString()?.let { Locale.forLanguageTag(it) } } } \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ObjectBuilder.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ObjectBuilder.kt index 468f29d..6b01c11 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ObjectBuilder.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/builder/ObjectBuilder.kt @@ -1,5 +1,7 @@ package dev.usbharu.activitystreams.impl.builder +import dev.usbharu.activitystreams.impl.model.other.JsonLdImpl +import dev.usbharu.activitystreams.impl.model.other.LangStringImpl import dev.usbharu.activitystreams.impl.type.AbstractJsonObjectBuilder import dev.usbharu.activitystreams.impl.type.BuilderContext import dev.usbharu.activitystreams.impl.type.JsonObjectBuilder @@ -9,15 +11,19 @@ import dev.usbharu.activitystreams.model.other.LangString import java.net.URI open class ObjectBuilder : AbstractJsonObjectBuilder() { - override fun build(t: Object, jsonObject: Map, builderContext: BuilderContext) { -// t.name = - } - override fun internalBuild(t: Object, jsonObject: Map, builderContext: BuilderContext) { - val langString = builderContext.typeFactory().factory(URI.create("")) as LangString - builderContext.getBuilder(LangString::class.java) - .build(langString, jsonObject["https://www.w3.org/ns/activitystreams#name"], builderContext) - t.name = + val maps = jsonObject["https://www.w3.org/ns/activitystreams#name"] as List> + t.name = LangStringImpl( + null, maps.mapNotNull { + + val jsonLd = JsonLdImpl() + builderContext.getBuilder(JsonLd::class.java).build(jsonLd, it, builderContext) + (jsonLd.language?.toLanguageTag() ?: return@mapNotNull null) to (jsonLd.value as? String? + ?: return@mapNotNull null) + }.toMap(), emptyList(), null, null + ) + + } } \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/model/activity/CreateImpl.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/activity/CreateImpl.kt index c09b879..4967841 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/impl/model/activity/CreateImpl.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/activity/CreateImpl.kt @@ -11,6 +11,7 @@ import dev.usbharu.activitystreams.model.other.MimeMediaType import java.net.URI import java.time.Duration import java.time.OffsetDateTime +import java.util.* class CreateImpl( override var type: List = emptyList(), @@ -49,4 +50,5 @@ class CreateImpl( override var id: URI? = null, override var source: ObjectOrLink? = null, override var value: Any? = null, + override var language: Locale? = null, ) : Create \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/JsonLdImpl.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/JsonLdImpl.kt new file mode 100644 index 0000000..611dc05 --- /dev/null +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/JsonLdImpl.kt @@ -0,0 +1,13 @@ +package dev.usbharu.activitystreams.impl.model.other + +import dev.usbharu.activitystreams.model.JsonLd +import java.net.URI +import java.util.* + +open class JsonLdImpl( + override var type: List = emptyList(), + override var id: URI? = null, + override var value: Any? = null, + override var language: Locale? = null +) : JsonLd { +} \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/LangStringImpl.kt b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/LangStringImpl.kt index b84b066..6dcbca3 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/LangStringImpl.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/impl/model/other/LangStringImpl.kt @@ -8,7 +8,7 @@ class LangStringImpl( override var value: Any?, private val map: Map, override var type: List = emptyList(), - override var id: URI? = null + override var id: URI? = null, override var language: Locale? = null ) : LangString { override fun getValue(): String? = value?.toString() diff --git a/src/main/kotlin/dev/usbharu/activitystreams/model/JsonLd.kt b/src/main/kotlin/dev/usbharu/activitystreams/model/JsonLd.kt index c7464fb..4137f88 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/model/JsonLd.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/model/JsonLd.kt @@ -1,9 +1,11 @@ package dev.usbharu.activitystreams.model import java.net.URI +import java.util.Locale interface JsonLd { var type: List var id: URI? var value: Any? + var language: Locale? } \ No newline at end of file diff --git a/src/main/kotlin/dev/usbharu/activitystreams/model/core/Activity.kt b/src/main/kotlin/dev/usbharu/activitystreams/model/core/Activity.kt index c8690f0..24c24f2 100644 --- a/src/main/kotlin/dev/usbharu/activitystreams/model/core/Activity.kt +++ b/src/main/kotlin/dev/usbharu/activitystreams/model/core/Activity.kt @@ -2,7 +2,7 @@ package dev.usbharu.activitystreams.model.core import dev.usbharu.activitystreams.model.ObjectOrLink -sealed interface InternalActivity : dev.usbharu.activitystreams.model.core.Object { +sealed interface InternalActivity : Object { var actor: List var target: List var result: ObjectOrLink? @@ -10,8 +10,8 @@ sealed interface InternalActivity : dev.usbharu.activitystreams.model.core.Objec var instrument: ObjectOrLink? } -interface Activity : dev.usbharu.activitystreams.model.core.InternalActivity { +interface Activity : InternalActivity { var `object`: ObjectOrLink? } -interface IntransitiveActivity : dev.usbharu.activitystreams.model.core.InternalActivity \ No newline at end of file +interface IntransitiveActivity : InternalActivity \ No newline at end of file