Helper object to build an Item
.
Use the setters to provide all desired attributes of an Item
including the name, ACL,
metadata fields, queue, version, and so on. To set the attribute’s value explicitly at build time
(value) or derive it from the repository’s map of key/values (field), define the metadata fields
as IndexingItemBuilder.FieldOrValue
objects.
Sample usage:
// within Repository method fetching a document
Multimap<String, Object> multiMapValues = ... // populate the map with repository data
String documentName = ... // create the specific document name (unique id)
String documentTitle = ... // set title to a "field" in multiMapValues
...
IndexingItemBuilder indexingItemBuilder =
IndexingItemBuilder.fromConfiguration(documentName).setValues(multiMapValues);
...
// the title is now set to the value of the title field during the build()
indexingItemBuilder.setTitle(FieldOrValue.withField(documentTitle));
...
// the URL is now set to the hard-coded URL string
indexingItemBuilder.setSourceRepositoryUrl(FieldOrValue.withValue("https://www.mycompany.com");
...
// generate the fully built document
Item documentItem = indexingItemBuilder.build();
...
Nested Class Summary
class | IndexingItemBuilder.FieldOrValue<T> | Construct to specify an actual field value or pointer to a key within the key/values map. | |
enum | IndexingItemBuilder.ItemType |
Constant Summary
String | CONTAINER_NAME_FIELD | |
String | CONTAINER_NAME_VALUE | |
String | CONTENT_LANGUAGE_FIELD | |
String | CONTENT_LANGUAGE_VALUE | |
String | CREATE_TIME_FIELD | |
String | CREATE_TIME_VALUE | |
String | HASH_FIELD | |
String | HASH_VALUE | |
String | MIME_TYPE_FIELD | |
String | MIME_TYPE_VALUE | |
String | OBJECT_TYPE | |
String | OBJECT_TYPE_FIELD | |
String | OBJECT_TYPE_VALUE | |
String | SEARCH_QUALITY_METADATA_QUALITY_FIELD | |
String | SEARCH_QUALITY_METADATA_QUALITY_VALUE | |
String | SOURCE_REPOSITORY_URL_FIELD | |
String | SOURCE_REPOSITORY_URL_VALUE | |
String | TITLE_FIELD | |
String | TITLE_VALUE | |
String | UPDATE_TIME_FIELD | |
String | UPDATE_TIME_VALUE |
Public Constructor Summary
IndexingItemBuilder(String name)
Constructs an empty
IndexingItemBuilder . |
Public Method Summary
Item | |
static IndexingItemBuilder |
fromConfiguration(String name)
Constructs an
IndexingItemBuilder from the Configuration . |
IndexingItemBuilder | |
IndexingItemBuilder |
setContainerName(String containerName)
This method is deprecated.
Use
setContainerName(FieldOrValue) with withValue(T)
|
IndexingItemBuilder |
setContainerName(FieldOrValue<String> containerName)
Sets the
containerName field value for the ItemMetadata , either from
the given field (or key) in the values multimap, or a literal value. |
IndexingItemBuilder |
setContentLanguage(FieldOrValue<String> language)
Sets the
contentLanguage field value for the ItemMetadata ,
either from the given field (or key) in the values multimap, or a
literal value. |
IndexingItemBuilder |
setCreateTime(FieldOrValue<DateTime> createTime)
Sets the
createTime field value for the ItemMetadata ,
either from the given field (or key) in the values multimap, or a
literal value. |
IndexingItemBuilder |
setHash(FieldOrValue<String> hash)
Sets the
hash field value for the ItemMetadata , either from
the given field (or key) in the values multimap, or a literal value. |
IndexingItemBuilder |
setHash(String hash)
This method is deprecated.
Use
setHash(FieldOrValue) with withValue(T)
|
IndexingItemBuilder | |
IndexingItemBuilder |
setMimeType(String mimeType)
This method is deprecated.
Use
setMimeType(FieldOrValue) with withValue(T)
|
IndexingItemBuilder |
setMimeType(FieldOrValue<String> mimeType)
Sets the
mimeType field value for the ItemMetadata , either from
the given field (or key) in the values multimap, or a literal value. |
IndexingItemBuilder |
setObjectType(String objectType)
This method is deprecated.
Use
setObjectType(FieldOrValue) with withValue(T)
|
IndexingItemBuilder |
setObjectType(FieldOrValue<String> objectType)
Sets the name of the object definition from the schema to use when
constructing the
ItemStructuredData , either from
the given field (or key) in the values multimap, or a literal value. |
IndexingItemBuilder |
setPayload(byte[] payload)
Sets the
payload field value for the Item . |
IndexingItemBuilder |
setQueue(String queue)
Sets the
queue field value for the Item . |
IndexingItemBuilder |
setSearchQualityMetadata(SearchQualityMetadata searchQuality)
Sets the
searchQualityMetadata field value for the ItemMetadata . |
IndexingItemBuilder |
setSearchQualityMetadataQuality(FieldOrValue<Double> quality)
Sets the
searchQualityMetadata.quality field value for the ItemMetadata . |
IndexingItemBuilder |
setSourceRepositoryUrl(FieldOrValue<String> url)
Sets the
sourceRepositoryUrl field value for the ItemMetadata ,
either from the given field (or key) in the values multimap, or a
literal value. |
IndexingItemBuilder |
setTitle(FieldOrValue<String> title)
Sets the
title field value for the ItemMetadata , either from
the given field (or key) in the values multimap, or a literal value. |
IndexingItemBuilder |
setUpdateTime(FieldOrValue<DateTime> updateTime)
Sets the
updateTime field value for the ItemMetadata ,
either from the given field (or key) in the values multimap, or a
literal value. |
IndexingItemBuilder |
setValues(Multimap<String, Object> values)
Sets the repository attributes that may be used for the
ItemMetadata
or StructuredDataObject fields, depending on the FieldOrValue
setters called by the connector as well as the configuration. |
IndexingItemBuilder |
setVersion(byte[] version)
Sets the
version field value for the Item . |
Inherited Method Summary
Constants
public static final String CONTAINER_NAME_FIELD
public static final String CONTAINER_NAME_VALUE
public static final String CONTENT_LANGUAGE_FIELD
public static final String CONTENT_LANGUAGE_VALUE
public static final String CREATE_TIME_FIELD
public static final String CREATE_TIME_VALUE
public static final String HASH_FIELD
public static final String HASH_VALUE
public static final String MIME_TYPE_FIELD
public static final String MIME_TYPE_VALUE
public static final String OBJECT_TYPE
public static final String OBJECT_TYPE_FIELD
public static final String OBJECT_TYPE_VALUE
public static final String SEARCH_QUALITY_METADATA_QUALITY_FIELD
public static final String SEARCH_QUALITY_METADATA_QUALITY_VALUE
public static final String SOURCE_REPOSITORY_URL_FIELD
public static final String SOURCE_REPOSITORY_URL_VALUE
public static final String TITLE_FIELD
public static final String TITLE_VALUE
public static final String UPDATE_TIME_FIELD
public static final String UPDATE_TIME_VALUE
Public Constructors
public IndexingItemBuilder (String name)
Constructs an empty IndexingItemBuilder
.
Parameters
name |
---|
Public Methods
public Item build ()
Builds the Item
using all of the previously set attributes.
Aside from the name
and values
map, all of the attributes are optional.
The metadata attributes
(mimeType, title, sourceRepositoryUrl, updateTime, createTime, contentLanguage,
hash, containerName
)
can be set explicitly in the setter, from the values
map, or using the
configuration properties
.
Returns
- fully built
Item
object
public static IndexingItemBuilder fromConfiguration (String name)
Constructs an IndexingItemBuilder
from the Configuration
.
Optional configuration parameters for ItemMetadata
:
itemMetadata.mimeType.field
- The key for the mimeType field in the values map.itemMetadata.title.field
- The key for the title field in the values map.itemMetadata.sourceRepositoryUrl.field
- The key for the URL field in the values map.itemMetadata.updateTime.field
- The key for the update time field in the values map.itemMetadata.createTime.field
- The key for the create time field in the values map.itemMetadata.contentLanguage.field
- The key for the content language field in the values map.itemMetadata.hash.field
- The key for the hash field in the values map.itemMetadata.containerName.field
- The key for the container name field in the values map.itemMetadata.searchQualityMetadata.quality.field
- The key for the SearchQualityMetadata quality field in the values map.itemMetadata.mimeType.defaultValue
- The value for the media type.itemMetadata.title.defaultValue
- The value for the title.itemMetadata.sourceRepositoryUrl.defaultValue
- The value for the URL.itemMetadata.updateTime.defaultValue
- The value for the update time in RFC 3339 format.itemMetadata.createTime.defaultValue
- The value for the create time in RFC 3339 format.itemMetadata.contentLanguage.defaultValue
- The value for the content language.itemMetadata.hash.defaultValue
- The value for the hash.itemMetadata.containerName.defaultValue
- The value for the container name.itemMetadata.searchQualityMetadata.quality.defaultValue
- The value for the SearchQualityMetadata quality.
Optional configuration parameters for ItemMetadata
and StructuredData
:
itemMetadata.objectType.field
- The key for the object type field in the values map.itemMetadata.objectType.defaultValue
- The value for the object type.
ItemMetadata
field, check the following in order for a non-empty value:
- A call to the correponding setter method on the returned
instance of
IndexingItemBuilder
. - A config property with a suffix of
.field
, used as a key into the thevalues map
. - A config property with a suffix of
.defaultValue
.
Parameters
name |
---|
public IndexingItemBuilder setAcl (Acl acl)
Sets the Acl
instance, which is used to construct the ItemAcl
.
Parameters
acl | the Acl instance |
---|
Returns
- this instance
public IndexingItemBuilder setContainerName (String containerName)
This method is deprecated.
Use setContainerName(FieldOrValue)
with withValue(T)
Sets the containerName
field value for the ItemMetadata
.
Parameters
containerName | the containerName field value |
---|
Returns
- this instance
public IndexingItemBuilder setContainerName (FieldOrValue<String> containerName)
Sets the containerName
field value for the ItemMetadata
, either from
the given field (or key) in the values
multimap, or a literal value.
Parameters
containerName | the source of the containerName field value |
---|
Returns
- this instance
public IndexingItemBuilder setContentLanguage (FieldOrValue<String> language)
Sets the contentLanguage
field value for the ItemMetadata
,
either from the given field (or key) in the values
multimap, or a
literal value.
Parameters
language | the source of the contentLanguage field value |
---|
Returns
- this instance
public IndexingItemBuilder setCreateTime (FieldOrValue<DateTime> createTime)
Sets the createTime
field value for the ItemMetadata
,
either from the given field (or key) in the values
multimap, or a
literal value.
Parameters
createTime | the source of the createTime field value |
---|
Returns
- this instance
public IndexingItemBuilder setHash (FieldOrValue<String> hash)
Sets the hash
field value for the ItemMetadata
, either from
the given field (or key) in the values
multimap, or a literal value.
Parameters
hash | the source of the hash field value |
---|
Returns
- this instance
public IndexingItemBuilder setHash (String hash)
This method is deprecated.
Use setHash(FieldOrValue)
with withValue(T)
Sets the hash
field value for the ItemMetadata
.
Parameters
hash | the hash field value |
---|
Returns
- this instance
public IndexingItemBuilder setItemType (IndexingItemBuilder.ItemType itemType)
Sets the itemType
field value for the Item
.
Parameters
itemType | the itemType field value |
---|
Returns
- this instance
public IndexingItemBuilder setMimeType (String mimeType)
This method is deprecated.
Use setMimeType(FieldOrValue)
with withValue(T)
Sets the mimeType
field value for the ItemMetadata
.
Parameters
mimeType | a media type, such as "application/pdf" |
---|
Returns
- this instance
public IndexingItemBuilder setMimeType (FieldOrValue<String> mimeType)
Sets the mimeType
field value for the ItemMetadata
, either from
the given field (or key) in the values
multimap, or a literal value.
Parameters
mimeType | the source of the media type |
---|
Returns
- this instance
public IndexingItemBuilder setObjectType (String objectType)
This method is deprecated.
Use setObjectType(FieldOrValue)
with withValue(T)
Sets the name of the object definition from the schema to use when
constructing the ItemStructuredData
Parameters
objectType | the object definition name |
---|
Returns
- this instance
public IndexingItemBuilder setObjectType (FieldOrValue<String> objectType)
Sets the name of the object definition from the schema to use when
constructing the ItemStructuredData
, either from
the given field (or key) in the values
multimap, or a literal value.
Parameters
objectType | the source of the object definition name |
---|
Returns
- this instance
public IndexingItemBuilder setPayload (byte[] payload)
Sets the payload
field value for the Item
.
Parameters
payload | the payload field value |
---|
Returns
- this instance
public IndexingItemBuilder setQueue (String queue)
Sets the queue
field value for the Item
.
Parameters
queue | the queue field value |
---|
Returns
- this instance
public IndexingItemBuilder setSearchQualityMetadata (SearchQualityMetadata searchQuality)
Sets the searchQualityMetadata
field value for the ItemMetadata
.
Using this setter will override any value previously set using setSearchQualityMetadataQuality(FieldOrValue)
.
Parameters
searchQuality | the SearchQualityMetadata instance |
---|
Returns
- this instance
public IndexingItemBuilder setSearchQualityMetadataQuality (FieldOrValue<Double> quality)
Sets the searchQualityMetadata.quality
field value for the ItemMetadata
.
Using this setter will override any value previously set using setSearchQualityMetadata(SearchQualityMetadata)
.
Parameters
quality | the source of the searchQualityMetadata.quality value |
---|
Returns
- this instance
public IndexingItemBuilder setSourceRepositoryUrl (FieldOrValue<String> url)
Sets the sourceRepositoryUrl
field value for the ItemMetadata
,
either from the given field (or key) in the values
multimap, or a
literal value.
Parameters
url | the source of the url field value |
---|
Returns
- this instance
public IndexingItemBuilder setTitle (FieldOrValue<String> title)
Sets the title
field value for the ItemMetadata
, either from
the given field (or key) in the values
multimap, or a literal value.
Parameters
title | the source of the title field value |
---|
Returns
- this instance
public IndexingItemBuilder setUpdateTime (FieldOrValue<DateTime> updateTime)
Sets the updateTime
field value for the ItemMetadata
,
either from the given field (or key) in the values
multimap, or a
literal value.
Parameters
updateTime | the source of the updateTime field value |
---|
Returns
- this instance
public IndexingItemBuilder setValues (Multimap<String, Object> values)
Sets the repository attributes that may be used for the ItemMetadata
or StructuredDataObject
fields, depending on the FieldOrValue
setters called by the connector as well as the configuration. The map may
have repeated values for a key.
Parameters
values | the repository attribute values |
---|
Returns
- this instance
public IndexingItemBuilder setVersion (byte[] version)
Sets the version
field value for the Item
.
Parameters
version | the version field value |
---|
Returns
- this instance