Thanks Luigi. Creating an abstract class to represent an interface won't work*. If you did this then the interface implementers would have to inherit from the interface class, which it turn would mean they could not inherit from any erstwhile superclasses. Reference the small class diagram image I included earlier. If Zapper where made a class then, in order to create an edge between an instance of Foo and an instance of Baz, class Baz would have to inherit from class Zapper. This is not possible if class Baz already inherits from class Bar.
For now I'm substituting all interfaces with class V and implementing additional type checking in the application layer. I'm still really excited to finally be given the go ahead to try to replace our use of RDBMS with OrientDB and I'm forging ahead. * Note -- I'm entirely wrong about this if OrientDB supports multiple inheritance. I can't find any indication that it does. Please let me know if I'm wrong because it will make things much easier for me. It would be really nice to have ability to have the storage model (i.e. OrientDB) more closely represent the classifiers used to implement a problem domain in the application layer. While I'm not a fan of multiple inheritance for classes, interfaces are a very good idea and multiple inheritance for interfaces (i.e. interfaces can extend multiple interfaces) is quite acceptable. This is quite normal in Java (and lots of other languages). Consider this a feature request ;-) Thanks, Michael On Tuesday, February 26, 2019 at 2:27:58 AM UTC-5, Luigi Dell'Aquila wrote: > > Hi Michael, > > OrientDB does not have a concept for interfaces, but you can use abstract > classes and make them extends V (so that you can then create edges between > them) > > I hope it helps > > Thanks > > Luigi > > Il giorno lun 25 feb 2019 alle ore 16:17 Michael Faughn < > [email protected] <javascript:>> ha scritto: > >> I'm having a go at implementing an OGM for Ruby. More precisely, an OGM >> that is driven by UML class diagrams. Is there a good way to handle >> properties that are typed as interfaces? >> >> Referencing the image below, how can I create a property for class Foo >> that is typed as a link to a Zapper? How can I create an edge to a Zapper? >> >> >> >> >> >> [image: orient_iface_example.jpg] >> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
