Uploaded image for project: 'Pivot'
  1. Pivot
  2. PIVOT-514

Create an annotation to specify the default "child" property of a component

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0
    • Component/s: wtk
    • Labels:
      None

      Description

      Add an annotation called @ContentProperty that specifies the default property to attach children to in the serializer. I found that I was making mistakes when creating WTKX that this annotation and a default "child attachment" approach could help. Benefits include:

      a) The client does not need to know which property to attach the children to.
      b) To add objects to a collection the parent object does not need to extend from sequence. The sequence can be contained in the object instead of implementing the interface. Containment can be another approach to getting content into the parent objects versus inheritance.
      c) You can change some of the properties in the class where attachment occurs and your WTKX files do not have to change.

      The default mechanism would be similar to what exists today. It's a simple extension of it. The "attach child" search would be:

      a) If the content property is specified, use that property to add the child to. If the content property is a collection, add it to the collection.
      b) If the content property is not specified,
      b.1) If the parent object is a collection (this is how it is handled today) then add it to the collection using the List.add(Object) method.
      b.2) Add it to the property specified in the XML. This is also how it is handled today.

      I wrote this for a small modeled framework similar to pivot and could work up a couple of patches for this. This is very similar to how wpf handles child content specifications in XML. Thoughts?

        Attachments

        1. DefaultProperty.java
          1 kB
          Gregory K. Brown
        2. defaultpropertypatch.zip
          5 kB
          Appddevvv
        3. defaultpropertypatch.zip
          17 kB
          Appddevvv
        4. PIVOT-514.patch
          13 kB
          Gregory K. Brown

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              aappddeevv Appddevvv
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: