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  IndexingItemBuilderfrom theConfiguration. | 
| IndexingItemBuilder | |
| IndexingItemBuilder | 
                setContainerName(String containerName)
                
                 
      This method is deprecated.
      Use  setContainerName(FieldOrValue)withwithValue(T) | 
| IndexingItemBuilder | 
                setContainerName(FieldOrValue<String> containerName)
                
                 Sets the  containerNamefield value for theItemMetadata, either from
 the given field (or key) in thevaluesmultimap, or a literal value. | 
| IndexingItemBuilder | 
                setContentLanguage(FieldOrValue<String> language)
                
                 Sets the  contentLanguagefield value for theItemMetadata,
 either from the given field (or key) in thevaluesmultimap, or a
 literal value. | 
| IndexingItemBuilder | 
                setCreateTime(FieldOrValue<DateTime> createTime)
                
                 Sets the  createTimefield value for theItemMetadata,
 either from the given field (or key) in thevaluesmultimap, or a
 literal value. | 
| IndexingItemBuilder | 
                setHash(FieldOrValue<String> hash)
                
                 Sets the  hashfield value for theItemMetadata, either from
 the given field (or key) in thevaluesmultimap, or a literal value. | 
| IndexingItemBuilder | 
                setHash(String hash)
                
                 
      This method is deprecated.
      Use  setHash(FieldOrValue)withwithValue(T) | 
| IndexingItemBuilder | |
| IndexingItemBuilder | 
                setMimeType(String mimeType)
                
                 
      This method is deprecated.
      Use  setMimeType(FieldOrValue)withwithValue(T) | 
| IndexingItemBuilder | 
                setMimeType(FieldOrValue<String> mimeType)
                
                 Sets the  mimeTypefield value for theItemMetadata, either from
 the given field (or key) in thevaluesmultimap, or a literal value. | 
| IndexingItemBuilder | 
                setObjectType(String objectType)
                
                 
      This method is deprecated.
      Use  setObjectType(FieldOrValue)withwithValue(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 thevaluesmultimap, or a literal value. | 
| IndexingItemBuilder | 
                setPayload(byte[] payload)
                
                 Sets the  payloadfield value for theItem. | 
| IndexingItemBuilder | 
                setQueue(String queue)
                
                 Sets the  queuefield value for theItem. | 
| IndexingItemBuilder | 
                setSearchQualityMetadata(SearchQualityMetadata searchQuality)
                
                 Sets the  searchQualityMetadatafield value for theItemMetadata. | 
| IndexingItemBuilder | 
                setSearchQualityMetadataQuality(FieldOrValue<Double> quality)
                
                 Sets the  searchQualityMetadata.qualityfield value for theItemMetadata. | 
| IndexingItemBuilder | 
                setSourceRepositoryUrl(FieldOrValue<String> url)
                
                 Sets the  sourceRepositoryUrlfield value for theItemMetadata,
 either from the given field (or key) in thevaluesmultimap, or a
 literal value. | 
| IndexingItemBuilder | 
                setTitle(FieldOrValue<String> title)
                
                 Sets the  titlefield value for theItemMetadata, either from
 the given field (or key) in thevaluesmultimap, or a literal value. | 
| IndexingItemBuilder | 
                setUpdateTime(FieldOrValue<DateTime> updateTime)
                
                 Sets the  updateTimefield value for theItemMetadata,
 either from the given field (or key) in thevaluesmultimap, or a
 literal value. | 
| IndexingItemBuilder | 
                setValues(Multimap<String, Object> values)
                
                 Sets the repository attributes that may be used for the  ItemMetadataorStructuredDataObjectfields, depending on theFieldOrValuesetters called by the connector as well as the configuration. | 
| IndexingItemBuilder | 
                setVersion(byte[] version)
                
                 Sets the  versionfield value for theItem. | 
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 Itemobject
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 Aclinstance | 
|---|
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 containerNamefield 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 containerNamefield 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 contentLanguagefield 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 createTimefield 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 hashfield 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 hashfield value | 
|---|
Returns
- this instance
public IndexingItemBuilder setItemType (IndexingItemBuilder.ItemType itemType)
Sets the itemType field value for the Item.
Parameters
| itemType | the itemTypefield 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 payloadfield value | 
|---|
Returns
- this instance
public IndexingItemBuilder setQueue (String queue)
Sets the queue field value for the Item.
Parameters
| queue | the queuefield 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 SearchQualityMetadatainstance | 
|---|
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.qualityvalue | 
|---|
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 urlfield 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 titlefield 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 updateTimefield 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 versionfield value | 
|---|
Returns
- this instance