Package org.apache.jackrabbit.vault.util
Class DocViewProperty2
- java.lang.Object
-
- org.apache.jackrabbit.vault.util.DocViewProperty2
-
public class DocViewProperty2 extends java.lang.Object
Helper class that represents a JCR property in the FileVault (enhanced) document view format. It contains formatting and parsing methods for writing/reading 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 JCRProperty
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 ofValue
s@NotNull Name
getName()
@NotNull java.util.Optional<java.lang.String>
getStringValue()
@NotNull java.util.List<java.lang.String>
getStringValues()
int
getType()
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.
-
-
-
Field Detail
-
BINARY_REF
public static final java.lang.String BINARY_REF
- See Also:
- Constant Field Values
-
-
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 propertyvalue
- valuetype
- 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 propertyvalue
- 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 propertyvalues
- valuestype
- 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 propertyvalues
- 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 ofValue
s- Parameters:
name
- the name of the propertyvalues
- the values (always an array, may be empty), must not containnull
itemstype
- the type of the propertyisMulti
-true
in case this is a multivalue propertysort
-true
in case the value array should be sorted firstuseBinaryReferences
- 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 JCRProperty
object.- Parameters:
prop
- the JCR propertysort
- iftrue
multi-value properties should be sorteduseBinaryReferences
-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 grammarNamespaceException
IllegalNameException
-
parse
@NotNull public static @NotNull DocViewProperty2 parse(Name name, java.lang.String value) throws IllegalNameException, NamespaceException
Parses a enhanced docview property string and returns the property.- Parameters:
name
- name of the propertyvalue
- (attribute) value- Returns:
- a property
- Throws:
java.lang.IllegalArgumentException
- in case the given value does not follow the doc view property grammarNamespaceException
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 propertysort
- iftrue
multi-value properties are sorteduseBinaryReferences
-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 classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.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. UseformatValue()
,format(Property)
orformat(Property, boolean, boolean)
to get the enhanced docview string representation of the value.- Overrides:
toString
in classjava.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()
-
-