eclipse / mosaic

Eclipse MOSAIC is a Multi-Domain and Multi-Scale Simulation Framework for Automated and Connected Mobility Scenarios.
https://eclipse.dev/mosaic
Eclipse Public License 2.0
96 stars 55 forks source link

feat(application): servers don't have access on AdHocModule anymore #404

Closed kschrab closed 2 months ago

kschrab commented 3 months ago

Description

os

Issue(s) related to this PR

Affected parts of the online documentation

Changes in the documentation required?

No, Names of OperatingSystems are kept

Definition of Done

Prerequisites

Required

Requested (can be enforced by maintainers)

Special notes to reviewer

kschrab commented 3 months ago

In my initial suggestion for naming interfaces to declare functionality for the OperatingSystem I used adjectives, as it felt very suitable here and also complies with this suggestion here: https://www.baeldung.com/java-interface-naming-conventions (use adjectives for Interfaces as capabilities)

Googles style does not really care if Interfaces should be adjectives or nouns (allows both).

Therefore we just can/should decide which we use, but it should be consistent within the package (no mix of adjectives/nouns).

This MR (adjectives) Other Suggestions (Nouns)
AdHocCommunicative AdHocCommunicator
CellCommunicative CellCommunicator
Locatable Localizable (adjective)
SelfLocator
Navigable
Navigational
Navigator
Perceptive Perceiver
Routable
RouteCalculable
Router (meh)
?
schwepmo commented 3 months ago

In my initial suggestion for naming interfaces to declare functionality for the OperatingSystem I used adjectives, as it felt very suitable here and also complies with this suggestion here: https://www.baeldung.com/java-interface-naming-conventions (use adjectives for Interfaces as capabilities)

Googles style does not really care if Interfaces should be adjectives or nouns (allows both).

Therefore we just can/should decide which we use, but it should be consistent within the package (no mix of adjectives/nouns). This MR (adjectives) Other Suggestions (Nouns) AdHocCommunicative AdHocCommunicator CellCommunicative CellCommunicator Locatable Localizable (adjective) SelfLocator Navigable Navigator Perceptive Perceiver Routable Router (meh) ?

I agree with the general naming schema of using adjectives for the description of interfaces. However, in this case it is not really about adding "attributes" to an object but rather enabling the access to additional capabilities. I.e., the ServerOperatingSystem itself is not routable but rather is able to route others.

Thinking about this just now, this logic really only applies to the Routable interface. Maybe also RouteCalculator would be an alternative.

Further suggestions:

@rprotzmann should definitely comment on this issue