Class DocViewProperty2


  • public class DocViewProperty2
    extends java.lang.Object
    Immutable helper class that represents a JCR property in the FileVault (enhanced) document view format. It contains formatting and parsing methods for serializing/deserializing enhanced docview properties.
    The string representation adheres to the following grammar:
     prop:= [ "{" type "}" ] ( value | "[" [ value { "," value } ] "]" )
     type := PropertyType.nameFromValue(int) | BINARY_REF
     value := is a string representation of the value where the following characters are escaped: ',\[{' with a leading '\'
     
     
    Since:
    3.6.0
    See Also:
    FileVault Document View Format
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String BINARY_REF  
    • Constructor Summary

      Constructors 
      Constructor Description
      DocViewProperty2​(@NotNull Name name, @NotNull java.lang.String value)
      Creates a new single-value property with an undefined type.
      DocViewProperty2​(@NotNull Name name, @NotNull java.lang.String value, int type)
      Creates a new single-value property.
      DocViewProperty2​(@NotNull Name name, @NotNull java.util.List<java.lang.String> values)
      Creates a new multi-value property with an undefined type.
      DocViewProperty2​(@NotNull Name name, @NotNull java.util.List<java.lang.String> values, int type)
      Creates a new multi-value property.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean apply​(@NotNull Node node)
      Sets this property on the given node.
      boolean equals​(java.lang.Object obj)  
      static @NotNull java.lang.String format​(@NotNull Property prop)
      Formats (serializes) the given JCR property value according to the enhanced docview syntax.
      static @NotNull java.lang.String format​(@NotNull Property prop, boolean sort, boolean useBinaryReferences)
      Formats (serializes) the given JCR property value to the enhanced docview syntax.
      @NotNull java.lang.String formatValue()
      Generates string representation of this DocView property value.
      static @NotNull DocViewProperty2 fromProperty​(@NotNull Property prop, boolean sort, boolean useBinaryReferences)
      Creates a new property based on a JCR Property object.
      static @NotNull DocViewProperty2 fromValues​(@NotNull Name name, @NotNull Value[] values, int type, boolean isMulti, boolean sort, boolean useBinaryReferences)
      Creates a new property based on an array of Values
      @NotNull Name getName()  
      @NotNull java.util.Optional<java.lang.String> getStringValue()  
      @NotNull java.util.List<java.lang.String> getStringValues()  
      int getType()  
      @NotNull java.util.Optional<Value> getValue​(@NotNull ValueFactory valueFactory)  
      @NotNull java.util.List<Value> getValues​(@NotNull ValueFactory valueFactory)  
      int hashCode()  
      boolean isMultiValue()  
      boolean isReferenceProperty()  
      static @NotNull DocViewProperty2 parse​(java.lang.String name, java.lang.String value, NameResolver nameResolver)
      Parses a enhanced docview property string and returns the property.
      static @NotNull DocViewProperty2 parse​(Name name, java.lang.String value)
      Parses a enhanced docview property string and returns the property.
      java.lang.String toString()
      This does not return the string representation of the enhanced docview property value but rather a descriptive string including the property name for debugging purposes.
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • DocViewProperty2

        public DocViewProperty2​(@NotNull
                                @NotNull Name name,
                                @NotNull
                                @NotNull java.lang.String value,
                                int type)
        Creates a new single-value property.
        Parameters:
        name - name of the property
        value - value
        type - type of the property
      • DocViewProperty2

        public DocViewProperty2​(@NotNull
                                @NotNull Name name,
                                @NotNull
                                @NotNull java.lang.String value)
        Creates a new single-value property with an undefined type.
        Parameters:
        name - name of the property
        value - value
      • DocViewProperty2

        public DocViewProperty2​(@NotNull
                                @NotNull Name name,
                                @NotNull
                                @NotNull java.util.List<java.lang.String> values,
                                int type)
        Creates a new multi-value property.
        Parameters:
        name - name of the property
        values - values
        type - type of the property
      • DocViewProperty2

        public DocViewProperty2​(@NotNull
                                @NotNull Name name,
                                @NotNull
                                @NotNull java.util.List<java.lang.String> values)
        Creates a new multi-value property with an undefined type.
        Parameters:
        name - name of the property
        values - values
    • Method Detail

      • fromValues

        @NotNull
        public static @NotNull DocViewProperty2 fromValues​(@NotNull
                                                           @NotNull Name name,
                                                           @NotNull
                                                           @NotNull Value[] values,
                                                           int type,
                                                           boolean isMulti,
                                                           boolean sort,
                                                           boolean useBinaryReferences)
                                                    throws RepositoryException
        Creates a new property based on an array of Values
        Parameters:
        name - the name of the property
        values - the values (always an array, may be empty), must not contain null items
        type - the type of the property
        isMulti - true in case this is a multivalue property
        sort - true in case the value array should be sorted first
        useBinaryReferences - to use the binary reference as value (if available)
        Returns:
        the new property
        Throws:
        RepositoryException
      • fromProperty

        @NotNull
        public static @NotNull DocViewProperty2 fromProperty​(@NotNull
                                                             @NotNull Property prop,
                                                             boolean sort,
                                                             boolean useBinaryReferences)
                                                      throws RepositoryException
        Creates a new property based on a JCR Property object.
        Parameters:
        prop - the JCR property
        sort - if true multi-value properties should be sorted
        useBinaryReferences - true to use binary references
        Returns:
        the new property
        Throws:
        java.lang.IllegalArgumentException - if single value property and not exactly 1 value is given.
        RepositoryException - if another error occurs
      • parse

        @NotNull
        public static @NotNull DocViewProperty2 parse​(java.lang.String name,
                                                      java.lang.String value,
                                                      NameResolver nameResolver)
                                               throws IllegalNameException,
                                                      NamespaceException
        Parses a enhanced docview property string and returns the property.
        Parameters:
        name - name of the property (either in qualified or extended form)
        value - (attribute) value
        Returns:
        a property
        Throws:
        java.lang.IllegalArgumentException - in case the given value does not follow the doc view property grammar
        NamespaceException
        IllegalNameException
      • format

        @NotNull
        public static @NotNull java.lang.String format​(@NotNull
                                                       @NotNull Property prop)
                                                throws RepositoryException
        Formats (serializes) the given JCR property value according to the enhanced docview syntax.
        Parameters:
        prop - the JCR property
        Returns:
        the formatted string of the property value
        Throws:
        RepositoryException - if a repository error occurs
      • format

        @NotNull
        public static @NotNull java.lang.String format​(@NotNull
                                                       @NotNull Property prop,
                                                       boolean sort,
                                                       boolean useBinaryReferences)
                                                throws RepositoryException
        Formats (serializes) the given JCR property value to the enhanced docview syntax.
        Parameters:
        prop - the JCR property
        sort - if true multi-value properties are sorted
        useBinaryReferences - true to use binary references
        Returns:
        the formatted string of the property value
        Throws:
        RepositoryException - if a repository error occurs
      • formatValue

        @NotNull
        public @NotNull java.lang.String formatValue()
        Generates string representation of this DocView property value.
        Returns:
        the string representation of the value
      • apply

        public boolean apply​(@NotNull
                             @NotNull Node node)
                      throws RepositoryException
        Sets this property on the given node.
        Parameters:
        node - the node
        Returns:
        true if the value was modified.
        Throws:
        RepositoryException - if a repository error occurs
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        This does not return the string representation of the enhanced docview property value but rather a descriptive string including the property name for debugging purposes. Use formatValue(), format(Property) or format(Property, boolean, boolean) to get the enhanced docview string representation of the value.
        Overrides:
        toString in class java.lang.Object
      • getName

        @NotNull
        public @NotNull Name getName()
      • isMultiValue

        public boolean isMultiValue()
      • isReferenceProperty

        public boolean isReferenceProperty()
      • getType

        public int getType()
        Returns:
        one of the values defined in PropertyType
      • getStringValue

        @NotNull
        public @NotNull java.util.Optional<java.lang.String> getStringValue()
      • getStringValues

        @NotNull
        public @NotNull java.util.List<java.lang.String> getStringValues()
      • getValue

        @NotNull
        public @NotNull java.util.Optional<Value> getValue​(@NotNull
                                                           @NotNull ValueFactory valueFactory)
                                                    throws ValueFormatException
        Parameters:
        valueFactory - the value factory to use for converting the underlying string to the JCR value
        Returns:
        the value or empty if no value set. For multi value only the first item is returned
        Throws:
        ValueFormatException
        Since:
        3.7.0
      • getValues

        @NotNull
        public @NotNull java.util.List<Value> getValues​(@NotNull
                                                        @NotNull ValueFactory valueFactory)
                                                 throws ValueFormatException
        Parameters:
        valueFactory - the value factory to use for converting the underlying string to the JCR value
        Returns:
        the list of values, may be empty. In case of single value entry just a single value list.
        Throws:
        ValueFormatException
        Since:
        3.7.0