Package org.apache.jackrabbit.vault.util
Class DocViewProperty2
- java.lang.Object
-
- org.apache.jackrabbit.vault.util.DocViewProperty2
-
public class DocViewProperty2 extends 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 String
BINARY_REF
-
Constructor Summary
Constructors Modifier Constructor Description DocViewProperty2(@NotNull Name name, @NotNull String value)
Creates a new single-value property with an undefined type.DocViewProperty2(@NotNull Name name, @NotNull String value, int type)
Creates a new single-value property.DocViewProperty2(@NotNull Name name, @NotNull List<String> values)
Creates a new multi-value property with an undefined type.protected
DocViewProperty2(@NotNull Name name, @NotNull List<String> values, boolean isMultiValue, int type, boolean isRef)
Creates a new property.DocViewProperty2(@NotNull Name name, @NotNull List<String> values, int type)
Creates a new multi-value property.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
apply(@NotNull Node node)
Sets this property on the given node.boolean
equals(Object obj)
protected static void
escape(StringBuffer buf, String value, boolean isMultiValue)
Deprecated.Rather useescape(String, boolean)
protected static String
escape(String value, boolean isMultiValue)
Escapes the valuestatic @NotNull String
format(@NotNull Property prop)
Formats (serializes) the given JCR property value according to the enhanced docview syntax.static @NotNull String
format(@NotNull Property prop, boolean sort, boolean useBinaryReferences)
Formats (serializes) the given JCR property value to the enhanced docview syntax.@NotNull 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 Optional<String>
getStringValue()
@NotNull List<String>
getStringValues()
int
getType()
@NotNull Optional<Value>
getValue(@NotNull ValueFactory valueFactory)
@NotNull List<Value>
getValues(@NotNull ValueFactory valueFactory)
int
hashCode()
boolean
isMultiValue()
boolean
isReferenceProperty()
static @NotNull DocViewProperty2
parse(String name, String value, NameResolver nameResolver)
Parses a enhanced docview property string and returns the property.static @NotNull DocViewProperty2
parse(Name name, String value)
Parses a enhanced docview property string and returns the property.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 String BINARY_REF
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DocViewProperty2
public DocViewProperty2(@NotNull @NotNull Name name, @NotNull @NotNull 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 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 List<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 List<String> values)
Creates a new multi-value property with an undefined type.- Parameters:
name
- name of the propertyvalues
- values
-
DocViewProperty2
protected DocViewProperty2(@NotNull @NotNull Name name, @NotNull @NotNull List<String> values, boolean isMultiValue, int type, boolean isRef)
Creates a new property.- Parameters:
name
- name of the propertyvalues
- string representation of valuesisMultiValue
- indicates if this is a multi-value propertytype
- type of the propertyisRef
-true
to indicate that this is a binary reference property- Throws:
IllegalArgumentException
- if single value property and not exactly 1 value is given
-
-
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:
IllegalArgumentException
- if single value property and not exactly 1 value is given.RepositoryException
- if another error occurs
-
parse
@NotNull public static @NotNull DocViewProperty2 parse(String name, 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:
IllegalArgumentException
- in case the given value does not follow the doc view property grammarNamespaceException
IllegalNameException
-
parse
@NotNull public static @NotNull DocViewProperty2 parse(Name name, 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:
IllegalArgumentException
- in case the given value does not follow the doc view property grammarNamespaceException
IllegalNameException
-
format
@NotNull public static @NotNull 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 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 String formatValue()
Generates string representation of this DocView property value.- Returns:
- the string representation of the value
-
escape
@Deprecated protected static void escape(StringBuffer buf, String value, boolean isMultiValue)
Deprecated.Rather useescape(String, boolean)
Escapes the value- Parameters:
buf
- buffer to append tovalue
- value to escapeisMultiValue
- indicates multi-value property
-
escape
protected static String escape(String value, boolean isMultiValue)
Escapes the value- Parameters:
value
- value to escapeisMultiValue
- indicates multi-value property- Returns:
- the escaped 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
-
toString
public 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.
-
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
-
getValue
@NotNull public @NotNull 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 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
-
-