You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jo...@apache.org on 2021/12/17 13:35:53 UTC
[isis] branch master updated: ISIS-2913 Diagrams amended, renamed. HasLinks renamed as well.
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 15c90ef ISIS-2913 Diagrams amended, renamed. HasLinks renamed as well.
new 24b1b83 Merge remote-tracking branch 'origin/master'
15c90ef is described below
commit 15c90efd8959cb11cdd3db83f5d13d2337200939
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri Dec 17 14:33:26 2021 +0100
ISIS-2913 Diagrams amended, renamed. HasLinks renamed as well.
---
...gregator.adoc => class-diagram_aggregator.adoc} | 9 +-
.../design/class-diagram_transferobject.adoc | 91 +++++++++++
.../kroviz/partials/design/uml-aggregator.png | Bin 119220 -> 0 bytes
.../modules/kroviz/partials/design/uml-layout.adoc | 26 ----
.../modules/kroviz/partials/design/uml-layout.png | Bin 26125 -> 0 bytes
.../kroviz/partials/design/uml-overview.adoc | 166 +++++++++------------
.../kroviz/partials/design/uml-overview.png | Bin 432117 -> 114246 bytes
.../modules/kroviz/partials/design/uml-to.adoc | 108 --------------
.../adoc/modules/kroviz/partials/design/uml-to.png | Bin 369570 -> 0 bytes
.../isis/client/kroviz/core/event/LogEntry.kt | 10 +-
.../kroviz/core/model/CollectionProperties.kt | 2 +-
.../org/apache/isis/client/kroviz/to/Action.kt | 3 +-
.../org/apache/isis/client/kroviz/to/Argument.kt | 14 +-
.../org/apache/isis/client/kroviz/to/Collection.kt | 3 +-
.../org/apache/isis/client/kroviz/to/DomainType.kt | 3 +-
.../isis/client/kroviz/to/{mb => }/Extensions.kt | 4 +-
.../org/apache/isis/client/kroviz/to/Member.kt | 3 +-
.../isis/client/kroviz/to/PlainTransferObjects.kt | 37 +++--
.../org/apache/isis/client/kroviz/to/TObject.kt | 3 +-
.../client/kroviz/to/{HasLinks.kt => WithLinks.kt} | 2 +-
.../kroviz/to/{HasLinks.kt => WithMembers.kt} | 8 +-
.../client/kroviz/ui/diagram/LinkTreeDiagram.kt | 4 +-
.../org/apache/isis/client/kroviz/to/LinkTest.kt | 2 +-
.../org/apache/isis/client/kroviz/to/MemberTest.kt | 1 -
.../apache/isis/client/kroviz/to/PropertyTest.kt | 1 -
.../client/kroviz/ui/table/TableFactoryTest.kt | 2 +-
26 files changed, 218 insertions(+), 284 deletions(-)
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.adoc b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_aggregator.adoc
similarity index 96%
rename from incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.adoc
rename to incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_aggregator.adoc
index 5c5de82..0b4462c 100644
--- a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.adoc
+++ b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_aggregator.adoc
@@ -1,7 +1,7 @@
:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
.Aggregator Diagram
-[plantuml,file="uml-aggregator.png"]
+[plantuml,file="class-diagram_aggregator.png"]
----
@startuml
@@ -110,6 +110,13 @@ package "model" {
- dirty:Boolean
+ canBeDisplayed()
}
+ note left of ObjectDM::dirty
+ Used in
+ UI editing
+ to signal
+ object
+ change.
+ end note
class CollectionDM {
data:List<Exposer>
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_transferobject.adoc b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_transferobject.adoc
new file mode 100644
index 0000000..ad1fe18
--- /dev/null
+++ b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/class-diagram_transferobject.adoc
@@ -0,0 +1,91 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+.Class Diagram
+[plantuml,file="class-diagram_transferobject.png"]
+----
+@startuml
+
+package "to" {
+ interface TransferObject<<TransferObject>>
+ TransferObject <|. Argument
+ TransferObject <|. Extensions
+ TransferObject <|. Link
+ TransferObject <|. Layout
+ TransferObject <|. Icon
+ TransferObject <|. Parameter
+ TransferObject <|. Value
+ Parameter o-- Value
+ interface WithLinks{
+ links:Link[]
+ }
+ WithLinks o- Link
+ TransferObject <|.. WithLinks
+ WithLinks <|.. Links
+ WithLinks <|.. Result
+ WithLinks <|.. ResultList
+ WithLinks <|.. WithExtensions
+
+ interface WithExtensions{
+ extensions:Extensions
+ }
+ WithExtensions o- Extensions
+ WithExtensions <|.. Collection
+ WithExtensions <|.. DomainTypes
+ WithExtensions <|.. Member
+ WithExtensions <|.. Restful
+ WithExtensions <|.. ResultListResult
+ WithExtensions <|.. WithMembers
+ WithExtensions <|.. WithParameters
+
+ interface WithMembers{
+ members:Member[]
+ }
+ WithMembers o- Member
+ WithMembers <|.. DomainType
+ WithMembers <|.. Service
+ WithMembers <|.. TObject
+
+ interface WithParameters{
+ parameters:Parameter[]
+ }
+ WithParameters o-- Parameter
+ WithParameters <|.. Action
+ WithParameters <|.. Property
+
+ Link o-- Argument
+ Member -- Value
+ Property -- Value
+
+ package "bs3" {
+ class Grid
+ Grid o-- Row
+ Row o-- Col
+ Col -- DomainObject
+ Col o-- bs3.Action
+ Col o-- TabGroup
+ Col o-- FieldSet
+ Col o-- bs3.Collection
+ FieldSet o-- bs3.Action
+ FieldSet o-- bs3.Property
+ Tab o-- Row
+ TabGroup o-- Tab
+ TransferObject <|.. Grid
+ }
+
+ package "mb" {
+ TransferObject <|.. Menu
+ TransferObject <|.. Menubars
+ TransferObject <|.. MenuEntry
+ TransferObject <|.. Section
+ TransferObject <|.. ServiceAction
+ Menu o-- Section
+ MenuEntry o-- Menu
+ Menubars -- MenuEntry : primary
+ Menubars -- MenuEntry : secondary
+ Menubars -- MenuEntry : tertiary
+ Section o-- ServiceAction
+ }
+}
+@enduml
+----
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.png b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.png
deleted file mode 100644
index 6a4dd3b..0000000
Binary files a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-aggregator.png and /dev/null differ
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.adoc b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.adoc
deleted file mode 100644
index 1ac9baa..0000000
--- a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.adoc
+++ /dev/null
@@ -1,26 +0,0 @@
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-[plantuml,file="uml-layout.png"]
-----
-@startuml
-
-object root
-object row
-object col
-object fieldSet
-object action
-object tabGroup
-object tab
-
-root *- row
-row *- col
-together {
- col *- fieldSet
- col *-down- action
- col *-down- tabGroup
-}
-tabGroup *-down- tab
-tab *- row
-
-@enduml
-----
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.png b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.png
deleted file mode 100644
index 31aaa1d..0000000
Binary files a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-layout.png and /dev/null differ
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.adoc b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.adoc
index 2d41f70..dd45687 100644
--- a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.adoc
+++ b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.adoc
@@ -6,113 +6,91 @@
----
@startuml
-class XHR {
- invoke()
+package handler {
+ class ResponseHandler<<Facade>><<ChainOfResponsibility>>{
+ handle(LogEntry)
+ canHandle(json)
+ doHandle()
+ parse(json)
+ }
}
-class EventStore<<(S,#FF7700) Singleton>> {
- log:LogEntry[]
- start()
- end()
- fault()
- find(href)
+package core {
+ package event {
+ class XHR {
+ invoke()
+ }
+ class EventStore<<Cache>><<EventSourcing>><<(S,#FF7700) Singleton>> {
+ log:LogEntry[]
+ start()
+ end()
+ fault()
+ find(href)
+ }
+ class LogEntry<<EventSourcing>> {
+ url:Href
+ title:String
+ startedAt:Date
+ updatedAt:Date
+ request:String
+ response:String
+ blob:Blob
+ object:TransferObject
+ aggregators:BaseAggregator[]
+ cacheHits:int
+ }
+ class ResourceProxy<<Proxy>> {
+ + load(tObject:Tobject)
+ + fetch(...)
+ - process()
+ - processCached()
+ }
+
+ EventStore o- LogEntry
+ ResourceProxy "(1)"--> EventStore
+ ResourceProxy "(2)"--> XHR
+ }
+
+ package aggregator {
+ abstract BaseAggregator<<Redux>><<Aggregator>> {
+ update(logEntry)
+ }
+ abstract AggregatorWithLayout {
+ layout:Layout
+ }
+ BaseAggregator <|.. AggregatorWithLayout
+ }
}
-class LogEntry {
- url:Href
- title:String
- startedAt:Date
- updatedAt:Date
- request:String
- response:String
- object:TransferObject
- aggregator:Aggregator
- cacheHits:int
+package "to" {
+ interface TransferObject<<TransferObject>>
}
-EventStore o-- LogEntry
-LogEntry o-- TransferObject
-LogEntry o-- Aggregator
-class ResponseHandler<<Facade,ChainOfResponsibility>>{
- handle(LogEntry)
- canHandle(json)
- doHandle()
- parse(json)
-}
-ResponseHandler -> XHR : json <
-ResponseHandler .> TransferObject : converts JSON into TO
-
-XHR -> EventStore
+XHR --> ResponseHandler : TransferObject \n is written into \n LogEntry
+LogEntry -> TransferObject
+LogEntry -->"1..n" BaseAggregator
+ResponseHandler .> TransferObject : converts \n JSON \n into TO
+circle RestfulObjects<<RemoteFacade>>
package remote <<Node>> {
-interface RestfulObjects
- class ApacheIsis<<(A, #FF7700)Application>>
- class NakedObjects<<(A, #FF7700)Application>>
-}
-RestfulObjects <|-- ApacheIsis
-RestfulObjects <|-- NakedObjects
-XHR -> RestfulObjects : invoke
-XHR <- RestfulObjects : json
-
-
-interface TransferObject
-TransferObject <|.. to.Link
-TransferObject <|.. to.Extensions
-TransferObject <|.. to.layout.Layout
-interface to.Linked{
- links:Link[]
-}
-TransferObject <|.. to.Linked
-to.Linked <|.. to.Result
-to.Linked <|.. to.ResultList
-to.Linked <|.. to.Extended
-
-interface to.Extended{
- extensions:Extensions
+ class ApacheIsis<<(F, #FF7700)FrameWork>>
+ class NakedObjects<<(F, #FF7700)FrameWork>>
+ RestfulObjects <|- ApacheIsis
+ RestfulObjects <|-- NakedObjects
}
-to.Linked o-- to.Link
-to.Extended o-- to.Extensions
-to.Extended <|.. to.Property
-to.Extended <|.. to.TObject
-to.Extended <|.. to.Service
-to.Extended <|.. to.Member
-to.Service o-- to.Member
-
-interface Aggregator {
- update(logEntry)
-}
-class CollectionAggregator {
- -list:ObjectList
-}
-CollectionAggregator *-- ObjectList
-Aggregator <|.. CollectionAggregator
-
-class NavigationAggregator
-Aggregator <|.. NavigationAggregator
-
-class ObjectList {
- list:ObjectAdapter
- -limit:int
- -layout:Layout
-}
-ObjectList *-- to.layout.Layout
-
-note "<<Pattern>>\nEventSourcing" as PES
-EventStore .. PES
-PES .. LogEntry
+XHR -( RestfulObjects : invoke() \njson string / blob <
-note "<<Pattern>>\nRedux" as PR
-PR .. PES
-PR .. Aggregator
+note right of ResourceProxy
+When ever a resource is required, the proxy is queried.
+(1) It's served from the <b>EventStore</b>, if possible. <b>LogEntry.cacheHits</b> will be incremented.
+(2) If it's not available yet, <b>XHR</b> fetches it from remote and puts it into the <b>EventStore</b>.
-note "<<Pattern>>\nRemoteFacade" as PRF
-PRF .. RestfulObjects
+In any case, a <b>LogEntry</b> containing the response (blob) will be passed on to it's aggregator(s).
-note "<<Pattern>>\nTransferObject" as PTO
-PTO .. TransferObject
+The aggregator to be used is either determined at the point where the resource is requested,
+or, based on the content of the response, assigned by the matching handler.
+end note
-note "<<Pattern>>\nAggregator" as PA
-PA .. Aggregator
@enduml
----
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.png b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.png
index 7a99e5e..6d2eed4 100644
Binary files a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.png and b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-overview.png differ
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.adoc b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.adoc
deleted file mode 100644
index 06a0563..0000000
--- a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.adoc
+++ /dev/null
@@ -1,108 +0,0 @@
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-.Transfer Objects Diagram
-[uml,file="uml-to.png"]
-----
-abstract class BaseTO {
- fromObject(json)
-}
-
-abstract class LinkedTO extends BaseTO {
- links
-}
-LinkedTO o-> inv.Link : links
-
-
-abstract class inv.Invokeable extends LinkedTO {
- href:String
- method:String
- invoke()
-}
-
-class inv.Link extends inv.Invokeable {
- title:String
- rel:String
- type:String
- args:Object
- arguments
-}
-inv.Link o-> Argument : arguments
-
-abstract class inv.Member extends inv.Invokeable {
- id:String
- memberType:String
- value:String
- format:String
- disabledReason:String
- extension
-}
-inv.Member -> Extensions : extension
-
-class inv.Action extends inv.Member {
- link
- parameters
-}
-inv.Action -> inv.Link : link
-inv.Action o-> Parameter : parameters
-
-class inv.Property extends inv.Member {
- maxLength:uint
-}
-
-
-class Argument extends BaseTO {
- key:String
- value:Object
-}
-
-class Extensions extends BaseTO{
- oid:String
- isService:Boolean
- isPersistent:Boolean
- menuBar:String
- actionSemantics:String
- actionType:String
- xIsisFormat:String
-}
-
-class List extends LinkedTO {
- resulttype:String
- result
-}
-List o-> Result : result
-
-class Parameter extends BaseTO {
- num:uint
- id:String
- description:String
- name:String
- choices
- defaultChoice
-}
-Parameter -> inv.Link : choices
-Parameter -> inv.Link : defaultChoice
-
-class Result extends LinkedTO {
- values
-}
-Result o-> inv.Link : values
-
-class TObject extends TitledTO {
- domainType:String
- instanceId:uint
-}
-
-class Service extends TitledTO {
- serviceId:String
- values
-}
-Service o-> inv.Link : values
-
-abstract class TitledTO extends LinkedTO {
- title:String
- extension
- members
-}
-TitledTO -> Extensions : extension
-TitledTO o-> inv.Member : members
-----
\ No newline at end of file
diff --git a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.png b/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.png
deleted file mode 100644
index 51ab5df..0000000
Binary files a/incubator/clients/kroviz/adoc/modules/kroviz/partials/design/uml-to.png and /dev/null differ
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
index b1a6f76..989e66c 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
@@ -24,7 +24,7 @@ import kotlinx.serialization.Contextual
import kotlinx.serialization.Serializable
import org.apache.isis.client.kroviz.core.aggregator.ActionDispatcher
import org.apache.isis.client.kroviz.core.aggregator.BaseAggregator
-import org.apache.isis.client.kroviz.to.HasLinks
+import org.apache.isis.client.kroviz.to.WithLinks
import org.apache.isis.client.kroviz.to.Link
import org.apache.isis.client.kroviz.to.Relation
import org.apache.isis.client.kroviz.to.TransferObject
@@ -173,8 +173,8 @@ data class LogEntry(
}
fun initType() {
- if (obj != null && obj is HasLinks) {
- val self = (obj as HasLinks).getLinks().firstOrNull() { it.relation() == Relation.SELF }
+ if (obj != null && obj is WithLinks) {
+ val self = (obj as WithLinks).getLinks().firstOrNull() { it.relation() == Relation.SELF }
if (self != null) {
val t = self.type.removePrefix("application/json;profile=\"urn:org.restfulobjects:repr-types/")
type = t.removeSuffix("\"")
@@ -260,8 +260,8 @@ data class LogEntry(
}
fun getLinks(): List<Link> {
- return if (obj is HasLinks) {
- (obj as HasLinks).getLinks()
+ return if (obj is WithLinks) {
+ (obj as WithLinks).getLinks()
} else {
emptyList()
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/CollectionProperties.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/CollectionProperties.kt
index e821481..c113332 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/CollectionProperties.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/CollectionProperties.kt
@@ -20,7 +20,7 @@ package org.apache.isis.client.kroviz.core.model
import org.apache.isis.client.kroviz.layout.PropertyLt
import org.apache.isis.client.kroviz.to.Property
-import org.apache.isis.client.kroviz.to.mb.Extensions
+import org.apache.isis.client.kroviz.to.Extensions
class CollectionProperties() {
val list = mutableListOf<ColumnProperties>()
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Action.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Action.kt
index ee5d392..74c0174 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Action.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Action.kt
@@ -19,7 +19,6 @@
package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
@Serializable
data class Action(val id: String,
@@ -27,7 +26,7 @@ data class Action(val id: String,
override val links: List<Link> = emptyList(),
val parameters: Map<String, Parameter> = emptyMap(),
val extensions: Extensions
-) : TransferObject, HasLinks {
+) : TransferObject, WithLinks {
fun getInvokeLink(): Link? {
return links.firstOrNull { it.rel.indexOf(id) > 0 }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
index 47a63c1..da67f21 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
@@ -20,14 +20,16 @@ package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-//IMPROVE initialize value="", move behavior out of TO
@Serializable
-//TODO either have kotlinx.serialization cope with empty key or implement custom serialization (cf. to.Value)
-data class Argument(var key: String = "",
- var value: String? = null,
- val potFileName: String = "",
- val href: String? = null) : TransferObject {
+data class Argument(
+ var key: String = "",
+ var value: String? = null,
+ val potFileName: String = "",
+ val href: String? = null
+) : TransferObject {
init {
+//TODO either have kotlinx.serialization cope with empty key or implement custom serialization (cf. to.Value)
+//IMPROVE initialize value="", move behavior out of TO
if (value == null) {
value = ""
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Collection.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Collection.kt
index d220e26..f34b1c4 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Collection.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Collection.kt
@@ -19,7 +19,6 @@
package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
@Serializable
data class Collection(val id: String,
@@ -28,4 +27,4 @@ data class Collection(val id: String,
val extensions: Extensions,
val value: List<Link> = emptyList(),
val disabledReason: String = ""
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/DomainType.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/DomainType.kt
index ca024dd..f6ce569 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/DomainType.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/DomainType.kt
@@ -20,7 +20,6 @@
package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
@Serializable
data class DomainType(
@@ -29,4 +28,4 @@ data class DomainType(
val members: Map<String, Link>,
val typeActions: Map<String, Link>,
val extensions: Extensions
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Extensions.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Extensions.kt
similarity index 93%
rename from incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Extensions.kt
rename to incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Extensions.kt
index b571284..3e91a54 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Extensions.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Extensions.kt
@@ -16,12 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.client.kroviz.to.mb
+package org.apache.isis.client.kroviz.to
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.MenuBarPosition
-import org.apache.isis.client.kroviz.to.TransferObject
@Serializable
data class Extensions(val oid: String = "",
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Member.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Member.kt
index d9401b2..0c7756f 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Member.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Member.kt
@@ -19,7 +19,6 @@
package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
@Serializable
data class Member(val id: String,
@@ -32,7 +31,7 @@ data class Member(val id: String,
val extensions: Extensions? = null,
val disabledReason: String = "",
val optional: Boolean = false
-) : TransferObject, HasLinks {
+) : TransferObject, WithLinks {
var type: String? = ValueType.TEXT.type
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/PlainTransferObjects.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/PlainTransferObjects.kt
index 96c02b6..a7d407e 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/PlainTransferObjects.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/PlainTransferObjects.kt
@@ -20,7 +20,6 @@ package org.apache.isis.client.kroviz.to
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
enum class ActionSemantics(val type: String) {
IDEMPOTENT("idempotent"),
@@ -32,7 +31,7 @@ enum class ActionSemantics(val type: String) {
data class DomainTypes(override val links: List<Link> = emptyList(),
val values: List<Link> = emptyList(),
val extensions: Extensions? = null
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
interface HttpErrorResponse {
val detail: HttpErrorDetail?
@@ -120,19 +119,19 @@ data class Property(val id: String = "",
val disabledReason: String? = null,
val parameters: List<Parameter> = emptyList(),
val maxLength: Int = 0
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
@Serializable
data class Restful(override val links: List<Link> = emptyList(),
val extensions: Extensions
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
@Serializable
data class ResultList(
override val links: List<Link> = emptyList(),
val resulttype: String = ResultType.LIST.type,
val result: ResultListResult? = null
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
/*
* Marker interface in order to group:
@@ -148,24 +147,24 @@ data class ResultListResult(
val value: List<Link> = emptyList(),
override val links: List<Link> = emptyList(),
val extensions: Extensions? = null
-) : IResult, HasLinks
+) : IResult, WithLinks
@Serializable
data class ResultObject(
override val links: List<Link> = emptyList(),
val resulttype: String = ResultType.DOMAINOBJECT.type,
val result: ResultObjectResult? = null
-) : IResult, HasLinks
+) : IResult, WithLinks
@Serializable
data class ResultObjectResult(
- override val links: List<Link> = emptyList(),
- val extensions: Extensions? = null,
- val title: String = "",
- val domainType: String = "",
- val instanceId: Int,
- val members: Map<String, Member> = emptyMap()
-) : IResult, HasLinks
+ override val links: List<Link> = emptyList(),
+ val extensions: Extensions? = null,
+ val title: String = "",
+ val domainType: String = "",
+ val instanceId: Int,
+ val members: Map<String, Member> = emptyMap()
+) : IResult, WithLinks
enum class ResultType(val type: String) {
LIST("list"),
@@ -179,14 +178,14 @@ data class ResultValue(
override val links: List<Link> = emptyList(),
val resulttype: String = ResultType.SCALARVALUE.type,
val result: ResultValueResult? = null
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
@Serializable
data class ResultValueResult(
val value: Value? = null,
override val links: List<Link> = emptyList(),
val extensions: Extensions? = null
-) : IResult, HasLinks
+) : IResult, WithLinks
@Serializable
data class Service(val value: List<Link> = emptyList(),
@@ -195,14 +194,14 @@ data class Service(val value: List<Link> = emptyList(),
val title: String = "",
val serviceId: String = "",
val members: Map<String, Member> = emptyMap()
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
@Serializable
data class User(val userName: String = "",
val roles: List<String> = emptyList(),
override val links: List<Link> = emptyList(),
val extensions: Extensions? = null
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
@Serializable
data class Version(override val links: List<Link> = emptyList(),
@@ -210,5 +209,5 @@ data class Version(override val links: List<Link> = emptyList(),
val implVersion: String = "",
val optionalCapabilities: Map<String, String> = emptyMap(),
val extensions: Extensions? = null
-) : TransferObject, HasLinks
+) : TransferObject, WithLinks
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TObject.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TObject.kt
index fd1be37..ab05092 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TObject.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TObject.kt
@@ -19,7 +19,6 @@
package org.apache.isis.client.kroviz.to
import kotlinx.serialization.Serializable
-import org.apache.isis.client.kroviz.to.mb.Extensions
@Serializable
data class TObject(override val links: List<Link> = emptyList(),
@@ -28,7 +27,7 @@ data class TObject(override val links: List<Link> = emptyList(),
val domainType: String = "",
val instanceId: String? = null,
val members: Map<String, Member> = emptyMap()
-) : TransferObject, HasLinks {
+) : TransferObject, WithLinks {
fun getProperties(): MutableList<Member> {
return getMembersOfType(MemberType.PROPERTY)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithLinks.kt
similarity index 97%
copy from incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt
copy to incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithLinks.kt
index 45f441c..94e8f95 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithLinks.kt
@@ -19,7 +19,7 @@
package org.apache.isis.client.kroviz.to
-interface HasLinks {
+interface WithLinks {
val links: List<Link>
fun getLinks(): List<Link> {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithMembers.kt
similarity index 88%
rename from incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt
rename to incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithMembers.kt
index 45f441c..51df0a5 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/HasLinks.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/WithMembers.kt
@@ -19,10 +19,10 @@
package org.apache.isis.client.kroviz.to
-interface HasLinks {
- val links: List<Link>
+interface WithMembers {
+ val members: List<Member>
- fun getLinks(): List<Link> {
- return links
+ fun getMembers(): List<Member> {
+ return members
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
index 1af4e83..f8a3c99 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
@@ -22,7 +22,7 @@ import org.apache.isis.client.kroviz.core.aggregator.AggregatorWithLayout
import org.apache.isis.client.kroviz.core.aggregator.BaseAggregator
import org.apache.isis.client.kroviz.core.event.LogEntry
import org.apache.isis.client.kroviz.core.event.ResourceSpecification
-import org.apache.isis.client.kroviz.to.HasLinks
+import org.apache.isis.client.kroviz.to.WithLinks
import org.apache.isis.client.kroviz.to.Property
import org.apache.isis.client.kroviz.to.Relation
import org.apache.isis.client.kroviz.to.Represention
@@ -74,7 +74,7 @@ object LinkTreeDiagram {
if (obj != null) {
val className = obj::class.simpleName!!
pc.addClass(className)
- if (obj is HasLinks) {
+ if (obj is WithLinks) {
obj.links.forEach {
if (it.relation() != Relation.SELF) {
val url = it.href
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/LinkTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/LinkTest.kt
index 505f7a6..7d13ec1 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/LinkTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/LinkTest.kt
@@ -86,7 +86,7 @@ class LinkTest {
map.forEach { rh ->
val jsonStr = rh.key.str
val ro = rh.value.parse(jsonStr)
- if (ro is HasLinks) {
+ if (ro is WithLinks) {
val links = ro.links
links.forEach { l ->
try {
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
index bdef37a..d1f5f3a 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
@@ -22,7 +22,6 @@ import kotlinx.serialization.json.Json
import org.apache.isis.client.kroviz.handler.MemberHandler
import org.apache.isis.client.kroviz.snapshots.demo2_0_0.COLLECTION_DESCRIPTION
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.FR_PROPERTY_DESCRIPTION
-import org.apache.isis.client.kroviz.to.mb.Extensions
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/PropertyTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/PropertyTest.kt
index 9641ddb..be675e9 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/PropertyTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/PropertyTest.kt
@@ -24,7 +24,6 @@ import org.apache.isis.client.kroviz.snapshots.demo2_0_0.PROPERTY
import org.apache.isis.client.kroviz.snapshots.demo2_0_0.PROPERTY_DESCRIPTION
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.FR_OBJECT_PROPERTY_
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.SO_PROPERTY
-import org.apache.isis.client.kroviz.to.mb.Extensions
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/TableFactoryTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/TableFactoryTest.kt
index 75f6d60..bd9a4f9 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/TableFactoryTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/TableFactoryTest.kt
@@ -24,7 +24,7 @@ import org.apache.isis.client.kroviz.core.model.Exposer
import org.apache.isis.client.kroviz.to.Member
import org.apache.isis.client.kroviz.to.MemberType
import org.apache.isis.client.kroviz.to.TObject
-import org.apache.isis.client.kroviz.to.mb.Extensions
+import org.apache.isis.client.kroviz.to.Extensions
class TableFactoryTest {