JPL-IMCE / gov.nasa.jpl.imce.oml

Ontology Modeling Language (OML) Workbench
13 stars 1 forks source link

Consider tightening data relationship source & target operation return types #304

Open NicolasRouquette opened 5 years ago

NicolasRouquette commented 5 years ago

Instead of:

abstract class DataRelationship extends Term, DirectedBinaryRelationshipKind {
        ...
    op Datatype[1] target()
}

class EntityScalarDataProperty extends DataRelationship, DataRelationshipFromEntity, DataRelationshipToScalar {
        ...
    op Datatype[1] target() { range }
}

class ScalarDataProperty extends DataRelationship, DataRelationshipFromStructure, DataRelationshipToScalar {
        ...
    op Datatype[1] target() { range }
}
class EntityStructuredDataProperty extends DataRelationship, DataRelationshipFromEntity, DataRelationshipToStructure {
    ...
    op Datatype[1] target() { range }
}
class StructuredDataProperty extends DataRelationship, DataRelationshipFromStructure, DataRelationshipToStructure {
    ...
    op Datatype[1] target() { range }
}

Consider replacing the return type with the most specific DataType appropriate:

abstract class DataRelationship extends Term, DirectedBinaryRelationshipKind {
        ...
    op Datatype[1] target()

}

class EntityScalarDataProperty extends DataRelationship, DataRelationshipFromEntity, DataRelationshipToScalar {
        ...
    op DataRange[1] target() { range }
}

class ScalarDataProperty extends DataRelationship, DataRelationshipFromStructure, DataRelationshipToScalar {
        ...
    op DataRange[1] target() { range }
}
class EntityStructuredDataProperty extends DataRelationship, DataRelationshipFromEntity, DataRelationshipToStructure {
    ...
    op Structure[1] target() { range }
}
class StructuredDataProperty extends DataRelationship, DataRelationshipFromStructure, DataRelationshipToStructure {
    ...
    op Structure[1] target() { range }
}
NicolasRouquette commented 5 years ago

Ditto for source.