public class DynamoUtil
extends java.lang.Object
Constructor and Description |
---|
DynamoUtil() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
buildPath(java.util.Stack<java.lang.String> pathStack)
Given the stack of objects containing our target object, build a url path
string.
|
static void |
commitToDynamoAndExternalSearch(java.lang.String ticket,
java.lang.String objectId,
com.amazonaws.services.dynamodbv2.document.Item properties,
DynamoConfig dynamoConfig)
Commits to Dynamo and external search
|
static java.lang.Object[] |
convertBytesToArray(byte[] byteArray,
java.lang.String propertyType)
Converts a byte array from Dynamo into an Object array.
|
static boolean[] |
convertBytesToBooleanArray(byte[] byteArray)
Converts bytes to a boolean array
|
static java.util.Date[] |
convertBytesToDateArray(byte[] byteArray)
Converts bytes to a date array
|
static double[] |
convertBytesToDoubleArray(byte[] byteArray)
Converts bytes to a double array
|
static int[] |
convertBytesToIntArray(byte[] byteArray)
Converts bytes to an int array
|
static java.lang.String[] |
convertBytesToStringArray(byte[] byteArray)
Converts bytes to a string array
|
static java.util.Map<java.lang.String,java.lang.Object> |
convertEopsToPropertyMap(EnhancedObjectProperty[] newProps)
Converts the newProps into a map of properties that match the Java Type of
the OpenContentObject properties map.
|
static byte[] |
convertToByteArray(java.util.List<java.lang.Object> list,
java.lang.String propertyType)
Overloaded version of
convertToByteArray(Object[], String) for
handling lists. |
static byte[] |
convertToByteArray(java.lang.Object[] array,
java.lang.String propertyType)
Converts an array of any type into an array of bytes.
|
static java.util.Map<java.lang.String,java.lang.Object[]> |
convertToMetadata(com.amazonaws.services.dynamodbv2.document.Item properties)
Converts the Dynamo properties map to the metadata map
|
static EnhancedObjectProperty |
createEOPFromDynamoCell(java.lang.String qualifier,
java.lang.Object property)
Creates an EOP from a dynamo cell
|
static com.amazonaws.services.dynamodbv2.document.Table |
createTable(java.lang.String tableName,
java.lang.String primaryKey,
long throughPut,
DynamoConfig dynamoConfig,
java.util.List<com.amazonaws.services.dynamodbv2.model.GlobalSecondaryIndex> globalSecondaryIndexes)
Creates a DynamoDB table
|
static void |
deleteObjects(java.util.List<java.lang.String> objectsToDelete,
DynamoConfig dynamoConfig)
Deletes all objects
|
static void |
deletePropertiesDynamo(java.lang.String objectId,
java.util.List<java.lang.String> propertiesToDelete,
DynamoConfig dynamoConfig)
Deletes passed in columns in dynamo
|
static void |
deleteTable(java.lang.String tableName,
DynamoConfig dynamoConfig)
Deletes a DynamoDB table
|
static void |
dynamoCommit(java.lang.String tableName,
com.amazonaws.services.dynamodbv2.document.Item item,
DynamoConfig dynamoConfig)
Given a put object, open an dynamo table, put the item, and close the table.
|
static void |
externalSearchCommit(java.lang.String ticket,
java.io.InputStream contentStream,
java.lang.String objectId,
java.util.Map<java.lang.String,java.lang.Object[]> newMetadata,
boolean tryFetchNative,
DynamoConfig dynamoConfig)
Given external search metadata, index document and commit changes.
|
static java.net.URL |
generatePresignedUrl(java.lang.String ticket,
com.amazonaws.services.dynamodbv2.document.Item documentProperty,
java.lang.String[] fileExtensions,
boolean download,
boolean inline)
Given a dynamo property from a get request, create a presigned url and return
it
|
static java.net.URL |
generatePresignedUrlFromProperty(java.lang.String fileName,
com.amazonaws.services.dynamodbv2.document.Item properties,
java.lang.String mimeType,
boolean download,
boolean inline)
Get content from properties
|
static java.util.List<java.lang.String> |
getAllTables(DynamoConfig dynamoConfig)
Returns all the tables
|
static EnhancedObjectContent |
getContent(java.lang.String ticket,
com.amazonaws.services.dynamodbv2.document.Item properties,
java.lang.String[] fileExtensions,
DynamoConfig dynamoConfig)
Given a dynamo property from a get request, populate a new
EnhancedObjectContent and return it
|
static EnhancedObjectContent |
getContentFromProperty(com.amazonaws.services.dynamodbv2.document.Item properties,
java.lang.String mimeType)
Get content from properties
|
static long |
getContentLength(java.lang.String ticket,
com.amazonaws.services.dynamodbv2.document.Item properties,
java.lang.String[] fileExtensions,
DynamoConfig dynamoConfig)
Given a dynamo property from a get request, return the content length
|
static java.lang.Long |
getContentLengthFromProperty(com.amazonaws.services.dynamodbv2.document.Item properties,
java.lang.String mimeType)
Returns the content length from property
|
static java.lang.String |
getFirstLifecycleState(java.lang.String ticket,
java.lang.String objectType)
Get first lifecycle state
|
static java.lang.String |
getIdByPathOrId(java.lang.String ticket,
java.lang.String pathOrId)
This method fetches an id value based on a provided variable that can be
either a path to an object or an objectId.
|
static com.amazonaws.services.dynamodbv2.document.Item |
getItemFromTableById(java.lang.String tableName,
java.lang.String primaryKey,
java.lang.String objectId,
DynamoConfig dynamoConfig)
Returns an item
|
static java.lang.String |
getPathToObject(java.lang.String ticket,
java.lang.String rootId,
java.lang.String targetId,
DynamoConfig dynamoConfig)
Iterative dfs method to traverse the dynamo rel_contains folder tree to find
the path to the target object id.
|
static java.lang.String |
getProjectTableName(java.lang.String tableName,
DynamoConfig dynamoConfig)
Helper function that gets the table name
|
static EnhancedCompleteObject |
getProperties(java.lang.String ticket,
com.amazonaws.services.dynamodbv2.document.Item properties)
Given a Dynamo item from a get request, populate a new EnhancedCompleteObject
and return it NOTE: This call does NOT deal with the 'content' column family.
|
static com.amazonaws.services.dynamodbv2.document.Item |
getProperty(java.lang.String objectId,
DynamoConfig dynamoConfig)
Gets the properties map from an object
|
static java.util.List<java.lang.String> |
getRelatedChildIds(java.lang.String objectId,
java.lang.String relationName,
DynamoConfig dynamoConfig)
Returns an array of ids of the children of an object
|
static com.amazonaws.services.dynamodbv2.document.Table |
getTable(java.lang.String tableName,
DynamoConfig dynamoConfig)
Returns the DynamoBB table with the requested name
|
static java.util.List<EnhancedObjectProperty> |
mergeProperties(java.util.List<EnhancedObjectProperty> existingProps,
EnhancedObjectProperty[] propsToAdd,
boolean hasBeenMajorVersioned,
boolean isControlledDoc)
Puts the new properties that are passed in onto the eop.
|
static void |
removeAllRelations(java.lang.String ticket,
java.lang.String objectId,
DynamoConfig dynamoConfig)
Removes all relations where the inputed objectId is the child
|
static void |
removeProperties(java.lang.String ticket,
java.lang.String objectId,
java.util.List<java.lang.String> propsToRemove,
DynamoConfig dynamoConfig)
Removes properties without updating modified date/modifier.
|
static java.util.List<java.util.Map<java.lang.String,com.amazonaws.services.dynamodbv2.model.AttributeValue>> |
scanTable(java.lang.String tableName,
java.lang.String projectionExpression,
DynamoConfig dynamoConfig)
Scans the table and returns values
|
static void |
setContent(java.lang.String ticket,
java.lang.String objectId,
EnhancedObjectContent eoc,
java.lang.String mimeType,
DynamoConfig dynamoConfig)
Sets content (native or rendition) in Dynamo and external search and updates
modified date
|
static void |
setNativeContent(java.lang.String ticket,
java.lang.String objectId,
EnhancedObjectContent eoc,
java.lang.String mimeType,
com.amazonaws.services.dynamodbv2.document.Item documentProperty,
java.util.Map<java.lang.String,java.lang.Object[]> metadata)
Sets the native content
|
static void |
setOCObjectProperties(java.lang.String objectId,
OpenContentObject oco,
com.amazonaws.services.dynamodbv2.document.Item item,
java.util.Map<java.lang.String,java.lang.Object[]> metaData)
Set OC Object Properties
|
static void |
setProperties(java.lang.String objectId,
EnhancedCompleteObject object,
com.amazonaws.services.dynamodbv2.document.Item item,
java.util.Map<java.lang.String,java.lang.Object[]> metadata,
boolean newVersion,
boolean majorVersion,
java.lang.String objectType)
Iterates through the properties on the object, determines their type, and
adds them to the Dynamo put request and external search metadata.
|
static void |
transformContent(java.lang.String ticket,
java.lang.String objectId,
java.lang.String mimeType)
Given in InputStream, set the appropriate content on the dynamo and external
search data objects.
|
static void |
updateModifiedProperties(java.lang.String ticket,
com.amazonaws.services.dynamodbv2.document.Item item,
java.util.Map<java.lang.String,java.lang.Object[]> metadata)
Handle the additional properties that refreshed in setProperties.
|
static void |
updateProperties(java.lang.String ticket,
java.lang.String objectId,
com.amazonaws.services.dynamodbv2.document.Item properties,
DynamoConfig dynamoConfig)
Updated properties in external search and dynamo.
|
public static byte[] convertToByteArray(java.lang.Object[] array, java.lang.String propertyType)
{Object[]}
- array to turn into bytes{String}
- propertyTypepublic static byte[] convertToByteArray(java.util.List<java.lang.Object> list, java.lang.String propertyType)
convertToByteArray(Object[], String)
for
handling lists. It just converts to an array and passes the array into the
corresponding "covert to byte array" method.{List
{String}
- propertyTypepublic static java.lang.Object[] convertBytesToArray(byte[] byteArray, java.lang.String propertyType)
{byte[]}
- byteArray{String}
- propertyTypepublic static java.lang.String[] convertBytesToStringArray(byte[] byteArray)
{byte[]}
- byte arraypublic static int[] convertBytesToIntArray(byte[] byteArray)
{byte[]}
- byte arraypublic static double[] convertBytesToDoubleArray(byte[] byteArray)
{byte[]}
- byte arraypublic static boolean[] convertBytesToBooleanArray(byte[] byteArray)
{byte[]}
- byte arraypublic static java.util.Date[] convertBytesToDateArray(byte[] byteArray)
{byte[]}
- byte arraypublic static void dynamoCommit(java.lang.String tableName, com.amazonaws.services.dynamodbv2.document.Item item, DynamoConfig dynamoConfig)
objectId
- config
- put
- public static void externalSearchCommit(java.lang.String ticket, java.io.InputStream contentStream, java.lang.String objectId, java.util.Map<java.lang.String,java.lang.Object[]> newMetadata, boolean tryFetchNative, DynamoConfig dynamoConfig) throws java.io.UnsupportedEncodingException
{String}
- ticket{InputStream}
- contentStream{String}
- objectId{Map - Object[]} newMetadata
java.io.UnsupportedEncodingException
public static java.util.List<java.lang.String> getAllTables(DynamoConfig dynamoConfig)
public static void setContent(java.lang.String ticket, java.lang.String objectId, EnhancedObjectContent eoc, java.lang.String mimeType, DynamoConfig dynamoConfig) throws java.io.IOException
{String}
- ticket{String}
- objectId{InputStream}
- {String}
- mimeTypejava.io.IOException
- for the conversion from InputStream to byte[]public static void setProperties(java.lang.String objectId, EnhancedCompleteObject object, com.amazonaws.services.dynamodbv2.document.Item item, java.util.Map<java.lang.String,java.lang.Object[]> metadata, boolean newVersion, boolean majorVersion, java.lang.String objectType)
{String}
- objectId of the object that is being created or updated in
Dynamo{EnhancedCompleteObject}
- object{Item}
- item{Map - Object[]} metadata
{boolean}
- new version{boolean}
- major type{String}
- object typepublic static EnhancedObjectContent getContent(java.lang.String ticket, com.amazonaws.services.dynamodbv2.document.Item properties, java.lang.String[] fileExtensions, DynamoConfig dynamoConfig)
{String}
- ticket{Item}
- item{String[]}
- file extensionspublic static EnhancedObjectContent getContentFromProperty(com.amazonaws.services.dynamodbv2.document.Item properties, java.lang.String mimeType)
{Item}
- properties{String}
- mimeType{DynamoConfig}
- dynamoConfigpublic static java.net.URL generatePresignedUrl(java.lang.String ticket, com.amazonaws.services.dynamodbv2.document.Item documentProperty, java.lang.String[] fileExtensions, boolean download, boolean inline)
{String}
- ticket{Item}
- item{String[]}
- file extensionspublic static java.net.URL generatePresignedUrlFromProperty(java.lang.String fileName, com.amazonaws.services.dynamodbv2.document.Item properties, java.lang.String mimeType, boolean download, boolean inline)
{Item}
- properties{String}
- mimeTypepublic static long getContentLength(java.lang.String ticket, com.amazonaws.services.dynamodbv2.document.Item properties, java.lang.String[] fileExtensions, DynamoConfig dynamoConfig)
{String}
- ticket{Item}
- item{String[]}
- file extensionspublic static java.lang.Long getContentLengthFromProperty(com.amazonaws.services.dynamodbv2.document.Item properties, java.lang.String mimeType)
{Item}
- properties{String}
- mimeType{DynamoConfig}
- dynamoConfigpublic static com.amazonaws.services.dynamodbv2.document.Item getProperty(java.lang.String objectId, DynamoConfig dynamoConfig)
{String}
- object id{DynamoConfig}
- dynamo configpublic static EnhancedCompleteObject getProperties(java.lang.String ticket, com.amazonaws.services.dynamodbv2.document.Item properties)
{String}
- ticket{Item}
- itempublic static void updateModifiedProperties(java.lang.String ticket, com.amazonaws.services.dynamodbv2.document.Item item, java.util.Map<java.lang.String,java.lang.Object[]> metadata)
{String}
- ticket{Item}
- item{Map - Object[]} metadata
public static void transformContent(java.lang.String ticket, java.lang.String objectId, java.lang.String mimeType)
{String}
- ticket{String}
- objectId{DynamoConfig}
- config{byte[]}
- content{String}
- mimeTypepublic static void setNativeContent(java.lang.String ticket, java.lang.String objectId, EnhancedObjectContent eoc, java.lang.String mimeType, com.amazonaws.services.dynamodbv2.document.Item documentProperty, java.util.Map<java.lang.String,java.lang.Object[]> metadata)
{String}
- ticket{String}
- object id{InputStream}
- content{String}
- mime type{Item}
- item{Map}
- metadatapublic static void setOCObjectProperties(java.lang.String objectId, OpenContentObject oco, com.amazonaws.services.dynamodbv2.document.Item item, java.util.Map<java.lang.String,java.lang.Object[]> metaData)
{String}
- object id{OpenContentObject}
- oco{Item}
- item{Map - Object[]> metaData
public static EnhancedObjectProperty createEOPFromDynamoCell(java.lang.String qualifier, java.lang.Object property)
{String}
- column name{Item}
- itempublic static java.lang.String getPathToObject(java.lang.String ticket, java.lang.String rootId, java.lang.String targetId, DynamoConfig dynamoConfig)
{String}
- ticket{String}
- rootId id of root folder{String}
- targetId id of requested objectpublic static java.lang.String buildPath(java.util.Stack<java.lang.String> pathStack)
{Stack}
- pathStack stack generated by our dfs path finding
method. Top of stack contains target and bottom contains rootpublic static java.lang.String getIdByPathOrId(java.lang.String ticket, java.lang.String pathOrId)
{String}
- ticket the OC ticket for validation{String}
- pathOrId the path or id for which to find the objectIdpublic static java.lang.String getFirstLifecycleState(java.lang.String ticket, java.lang.String objectType)
{String}
- ticket{String}
- object typepublic static void deleteObjects(java.util.List<java.lang.String> objectsToDelete, DynamoConfig dynamoConfig)
{List}
- object ids to deletepublic static void removeAllRelations(java.lang.String ticket, java.lang.String objectId, DynamoConfig dynamoConfig)
{String}
- ticket{String}
- objectIdpublic static java.util.List<EnhancedObjectProperty> mergeProperties(java.util.List<EnhancedObjectProperty> existingProps, EnhancedObjectProperty[] propsToAdd, boolean hasBeenMajorVersioned, boolean isControlledDoc)
{List}
- existingProps properties that are going
to be updated/added to/overwritten{EnhancedObjectProperty[]}
- List of properties to add/write to the eco{boolean}
- boolean if it has been major versionedpublic static void removeProperties(java.lang.String ticket, java.lang.String objectId, java.util.List<java.lang.String> propsToRemove, DynamoConfig dynamoConfig)
ticket
- objectId
- propsToRemove
- public static void deletePropertiesDynamo(java.lang.String objectId, java.util.List<java.lang.String> propertiesToDelete, DynamoConfig dynamoConfig)
{String}
- objectId{List}
- propertiespublic static java.util.Map<java.lang.String,java.lang.Object> convertEopsToPropertyMap(EnhancedObjectProperty[] newProps)
{EnhancedObjectProperty[]}
- newProps List of eops to be put into the
mappublic static void updateProperties(java.lang.String ticket, java.lang.String objectId, com.amazonaws.services.dynamodbv2.document.Item properties, DynamoConfig dynamoConfig)
{String}
- ticket{String}
- objectId{Map - Object} properties
properties
- public static java.util.List<java.lang.String> getRelatedChildIds(java.lang.String objectId, java.lang.String relationName, DynamoConfig dynamoConfig)
{String}
- parentId{String}
- relationNamepublic static java.util.Map<java.lang.String,java.lang.Object[]> convertToMetadata(com.amazonaws.services.dynamodbv2.document.Item properties)
{Map - Object>} properties
public static void commitToDynamoAndExternalSearch(java.lang.String ticket, java.lang.String objectId, com.amazonaws.services.dynamodbv2.document.Item properties, DynamoConfig dynamoConfig)
{String}
- ticket{String}
- objectId -- object id to commit to{Map - Object} properties. The properties to be update
public static java.util.List<java.util.Map<java.lang.String,com.amazonaws.services.dynamodbv2.model.AttributeValue>> scanTable(java.lang.String tableName, java.lang.String projectionExpression, DynamoConfig dynamoConfig)
{String}
- tableName{String}
- project expression controlling what attributes to get during
the scanpublic static com.amazonaws.services.dynamodbv2.document.Table createTable(java.lang.String tableName, java.lang.String primaryKey, long throughPut, DynamoConfig dynamoConfig, java.util.List<com.amazonaws.services.dynamodbv2.model.GlobalSecondaryIndex> globalSecondaryIndexes)
{String}
- table name{String}
- primary key{long}
- throughput{DynamoConfig}
- configpublic static void deleteTable(java.lang.String tableName, DynamoConfig dynamoConfig)
{String}
- table name{String}
- primary key{long}
- throughput{DynamoConfig}
- configpublic static com.amazonaws.services.dynamodbv2.document.Table getTable(java.lang.String tableName, DynamoConfig dynamoConfig)
{String}
- tableNamepublic static com.amazonaws.services.dynamodbv2.document.Item getItemFromTableById(java.lang.String tableName, java.lang.String primaryKey, java.lang.String objectId, DynamoConfig dynamoConfig)
{String}
- table name{String}
- primary key{String}
- object idpublic static java.lang.String getProjectTableName(java.lang.String tableName, DynamoConfig dynamoConfig)
{String}
- table name{DynamoConfig}
- dynamo config