Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The tree specification would work better if a tree could be expressed as a collections of vertices instead of a collection of nodes. #31

Open
MathieuDuponchelle opened this issue Jul 2, 2015 · 0 comments

Comments

@MathieuDuponchelle
Copy link

I have implemented serialization of the class hierarchy in g-ir-doc-tool, and the resulting tree for a class with multiple inheritance (interfaces) is full of redundancy, for example :

        <tree>
          <item>
            <link href="https://developer.gnome.org/gobject/unstable//gobject-The-Base-Object-Type.html#GObject">GObject.Object</link>
            <item>
              <link href="https://developer.gnome.org/gobject/unstable//gobject-The-Base-Object-Type.html#GInitiallyUnowned">GObject.InitiallyUnowned</link>
              <item>
                <link xref="GES.Object">GES.Object</link>
                <item>
                  <link xref="GES.Source">GES.Source</link>
                  <item>
                    <link xref="GES.UriSource">GES.UriSource</link>
                  </item>
                </item>
              </item>
            </item>
          </item>
          <item>
            <link xref="index">GObject.GInterface</link>
            <item>
              <link href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html//GstChildProxy.html">Gst.ChildProxy</link>
              <item>
                <link xref="GES.Object">GES.Object</link>
                <item>
                  <link xref="GES.Source">GES.Source</link>
                  <item>
                    <link xref="GES.UriSource">GES.UriSource</link>
                  </item>
                </item>
              </item>
            </item>
            <item>
              <link xref="GES.Playable">GES.Playable</link>
              <item>
                <link xref="GES.Source">GES.Source</link>
                <item>
                  <link xref="GES.UriSource">GES.UriSource</link>
                </item>
              </item>
            </item>
          </item>
        </tree>

as each branch from the ancestor "leaves" to the child has to be fully specified.

If defined in terms of vertices, with "implicit nodes", the structure would be much cleaner / easier to parse:

<vertex from=GInterface to=GstChildProxy />
<vertex from=GInterface to=GES.Playable />
<vertex from=GObject to=GInitiallyUnowned />
  <vertex from=GstChildProxy to=GES.Object />
  <vertex from=GInitiallyUnowned to=GES.Object />
     <vertex from=GES.Playable to=GES.Source />
     <vertex from=GES.Object to=GES.Source />
       <vertex from=GES.Source to=GES.UriSource />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant