This repository was archived by the owner on Jun 13, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Feature Request: Cleaner interfaces #2
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Hi,
all Infomodel Object interfaces seem to share common functions, such as getId(), toRdf, setProperties and getProperties.
- I would like to propose to segregate the "fat" IDS interfaces and rather compose the IDS interfaces by using single purpose interfaces. E.g.:
// Maybe even make key and values generic?
public interface DynamicProperties<K, V> {
void setProperty(K key, V value);
Map<K, V> getProperties();
}
By defining such it would be possible to operate on IDS objects in a generic way. E.g. call toRdf on all IDS objects regardless if they are ResourceCatalogs or Artifacts (which is currently not possible, see definition of Catalog and Artifact).
- Further i would like to propose to remove duplications in interface definitions.
e.g. When looking at the definition of a ResourceCatalog it definies functions likegetId,toRdf. But those are already definied in the parent interfaceCatalog.
It gets even more complicated when looking at classes like Representation that inherit multiple interfaces, but all are defining those functions. This makes interfaces larger then they need to be and it obscures how a e.g. ResourceCatalog differs from a Catalog.
- Maybe this could be fixed by defining a common shared base interface? Something like
IdsObject? This IdsObject would inherit those single purpose interface (defined in 1) and every IDS Object would inherit fromIdsObject. This would also allow to narrow the scope of generic functions and classes because it would allow the usage of<? extends IdsObject>. At the moment such scoping is not possible since the only common interface is the java base classObject.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request