Interface Attributes

  • All Superinterfaces:
    AttributesRO
    All Known Subinterfaces:
    Proxy.Attributes

    public interface Attributes
    extends AttributesRO
    Node's attribute table: node.attributes - read-write.

    Notes on attribute setters:

    • All setter methods try to convert strings to dates, numbers or URIs.
    • All setter methods apply a default formatting (for display) of the value for dates and numbers.
    • Attributes don't have style properties so the value objects must know about the right formatting for themselves.
    • To enforce a certain formatting use format():
      node['creationDate'] = format(new Date(), 'MM/yyyy')

    Examples:

       // == text
       node["attribute name"] = "a value"
       assert node["attribute name"].text == "a value"
       assert node.attributes.getFirst("attribute name") == "a value" // the same
    
       // == numbers and others
       // converts numbers and other stuff with toString()
       node["a number"] = 1.2
       assert node["a number"].text == "1.2"
       assert node["a number"].num == 1.2d
    
         *   // == dates
       def date = new Date()
       node["a date"] = date
       assert node["a date"].object.getClass().simpleName == "FormattedDate"
       assert node["a date"].date == format(date)
    
       // == enforce formats on attribute values
       node["another date"] = format(date, 'yyyy|MM|dd')
       assert node["another date"].date == format(date, 'yyyy|MM|dd')
    
       // change the date while keeping the silly format
       def index = node.attributes.findAttribute("another date")
       node.attributes.set(index, new Date(0L))
    
       // == URIs
       def uri = new URI("http://www.freeplane.org")
       node["uri"] = uri
       assert node["uri"].object.getClass().simpleName == "URI"
       assert node["uri"].object == uri
    
       // == remove an attribute
       node["removed attribute"] = "to be removed"
       assert node["removed attribute"] == "to be removed"
       node["removed attribute"] = null
       assert node.attributes.findFirst("removed attribute") == -1
     
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      void add​(java.lang.String name, java.lang.Object value)
      adds an attribute no matter if an attribute with the given name already exists.
      void add​(java.lang.String name, java.lang.Object value, java.lang.String format)
      adds an attribute with formatting pattern no matter if an attribute with the given name already exists.
      void clear()
      removes all attributes.
      java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> iterator()
      allows application of Groovy collection methods like each(), collect(), ...
      void optimizeWidths()
      optimize widths of attribute view columns according to contents.
      void remove​(int index)
      removes the attribute at the given index.
      boolean remove​(java.lang.String name)
      Deprecated.
      before 1.1 - use remove(int) or removeAll(String) instead.
      boolean removeAll​(java.lang.String name)
      removes all attributes with this name.
      void set​(int index, java.lang.Object value)
      sets the value of the attribute at an index.
      void set​(int index, java.lang.String name, java.lang.Object value)
      sets name and value of the attribute at the given index.
      void set​(int index, java.lang.String name, java.lang.Object value, java.lang.String format)
      sets name, value and format pattern of the attribute at the given index.
      void set​(java.lang.String name, java.lang.Object value)
      adds an attribute if there is no attribute with the given name or changes the value of the first attribute with the given name.
      void setFormat​(int index, java.lang.String format)
      sets format pattern to the attribute at the given index.
    • Method Detail

      • set

        void set​(int index,
                 java.lang.Object value)
        sets the value of the attribute at an index. This method will not create new attributes.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range, i. e. index < 0 || index >= size().
      • set

        void set​(int index,
                 java.lang.String name,
                 java.lang.Object value)
        sets name and value of the attribute at the given index. This method will not create new attributes.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range, i. e. index < 0 || index >= size().
      • set

        void set​(int index,
                 java.lang.String name,
                 java.lang.Object value,
                 java.lang.String format)
        sets name, value and format pattern of the attribute at the given index. This method will not create new attributes.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range, i. e. index < 0 || index >= size().
      • setFormat

        void setFormat​(int index,
                       java.lang.String format)
        sets format pattern to the attribute at the given index.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range, i. e. index < 0 || index >= size().
      • remove

        @Deprecated
        boolean remove​(java.lang.String name)
        Deprecated.
        before 1.1 - use remove(int) or removeAll(String) instead.
        removes the first attribute with this name.
        Returns:
        true on removal of an existing attribute and false otherwise.
      • removeAll

        boolean removeAll​(java.lang.String name)
        removes all attributes with this name.
        Returns:
        true on removal of an existing attribute and false otherwise.
      • remove

        void remove​(int index)
        removes the attribute at the given index.
        Throws:
        java.lang.IndexOutOfBoundsException - if index is out of range, i. e. index < 0 || index >= size().
      • set

        void set​(java.lang.String name,
                 java.lang.Object value)
        adds an attribute if there is no attribute with the given name or changes the value of the first attribute with the given name.
      • add

        void add​(java.lang.String name,
                 java.lang.Object value)
        adds an attribute no matter if an attribute with the given name already exists.
      • add

        void add​(java.lang.String name,
                 java.lang.Object value,
                 java.lang.String format)
        adds an attribute with formatting pattern no matter if an attribute with the given name already exists.
      • clear

        void clear()
        removes all attributes.
        Since:
        1.2
      • iterator

        java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Object>> iterator()
        allows application of Groovy collection methods like each(), collect(), ...
           def keyList = node.attributes.collect { it.key }
           def values = node.attributes.collect { it.value }
           node.attributes.each {
               if (it.key =~ /.*day/)
                   it.value += ' days'
           }
         
        Since:
        1.3.2
      • optimizeWidths

        void optimizeWidths()
        optimize widths of attribute view columns according to contents.
        Since:
        1.4