Class AbstractHeader

    • Constructor Detail

      • AbstractHeader

        public AbstractHeader()
        Creates a new empty Header.
      • AbstractHeader

        public AbstractHeader​(Header other)
        Creates a new Header from the specified Header. The Header instance is initialized with a copy of the list of Fields of the specified Header. The Field objects are not copied because they are immutable and can safely be shared between headers.
        Parameters:
        other - header to copy.
    • Method Detail

      • addField

        public void addField​(Field field)
        Adds a field to the end of the list of fields.
        Specified by:
        addField in interface Header
        Parameters:
        field - the field to add.
      • getFields

        public List<Field> getFields()
        Gets the fields of this header. The returned list will not be modifiable.
        Specified by:
        getFields in interface Header
        Returns:
        the list of Field objects.
      • getFieldsAsMap

        public Map<String,​List<Field>> getFieldsAsMap()
        Gets the fields of this header. The returned map will not be modifiable. For each header name, values are ordered by which they appear in the underlying entity.
        Specified by:
        getFieldsAsMap in interface Header
        Returns:
        the map of Field objects indexed by names.
      • getField

        public Field getField​(String name)
        Gets a Field given a field name. If there are multiple such fields defined in this header the first one will be returned.
        Specified by:
        getField in interface Header
        Parameters:
        name - the field name (e.g. From, Subject).
        Returns:
        the field or null if none found.
      • getField

        public <F extends Field> F getField​(String name,
                                            Class<F> clazz)
        Gets a Field given a field name and of the given type. If there are multiple such fields defined in this header the first one will be returned.
        Specified by:
        getField in interface Header
        Parameters:
        name - the field name (e.g. From, Subject).
        clazz - the field class.
        Returns:
        the field or null if none found.
      • getFields

        public List<Field> getFields​(String name)
        Gets all Fields having the specified field name.
        Specified by:
        getFields in interface Header
        Parameters:
        name - the field name (e.g. From, Subject).
        Returns:
        the list of fields.
      • getFields

        public <F extends FieldList<F> getFields​(String name,
                                                   Class<F> clazz)
        Gets all Fields having the specified field name and of the given type.
        Specified by:
        getFields in interface Header
        Parameters:
        name - the field name (e.g. From, Subject).
        clazz - the field class.
        Returns:
        the list of fields.
      • removeFields

        public int removeFields​(String name)
        Removes all Fields having the specified field name.
        Specified by:
        removeFields in interface Header
        Parameters:
        name - the field name (e.g. From, Subject).
        Returns:
        number of fields removed.
      • setField

        public void setField​(Field field)
        Sets or replaces a field. This method is useful for header fields such as Subject or Message-ID that should not occur more than once in a message. If this Header does not already contain a header field of the same name as the given field then it is added to the end of the list of fields (same behavior as addField(Field)). Otherwise the first occurrence of a field with the same name is replaced by the given field and all further occurrences are removed.
        Specified by:
        setField in interface Header
        Parameters:
        field - the field to set.
      • toString

        public String toString()
        Return Header Object as String representation. Each headerline is seperated by "\r\n"
        Overrides:
        toString in class Object
        Returns:
        headers