All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.storage.table.EntityResolver Maven / Gradle / Ivy

/**
 * Copyright Microsoft Corporation
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.microsoft.azure.storage.table;

import java.util.Date;
import java.util.HashMap;

import com.microsoft.azure.storage.StorageException;

/**
 * An interface to perform client side projection on a retrieved entity. An {@link EntityResolver} instance must
 * implement a resolve method projecting the entity data represented by the parameters passed in as a new
 * instance of the type specified by the type parameter.
 * 

* This interface is useful for converting directly from table entity data to a client object type without requiring a * separate table entity class type that deserializes every property individually. For example, a client can perform a * client side projection of a Customer entity by simply returning the String for the * CustomerName property of each entity. The result of this projection will be a collection of * Strings containing each customer name. * * @param * The type of the object that the resolver produces. */ public interface EntityResolver { /** * Returns a reference to a new object instance of type T containing a projection of the specified * table entity data. * * @param partitionKey * A String containing the PartitionKey value for the entity. * @param rowKey * A String containing the RowKey value for the entity. * @param timeStamp * A java.util.Date containing the Timestamp value for the entity. * @param properties * The java.util.HashMap of String property names to {@link EntityProperty} * data type and value pairs representing the table entity data. * @param etag * A String containing the Etag for the entity. * @return * A reference to an object instance of type T constructed as a projection of the table entity * parameters. * @throws StorageException * if an error occurs during the operation. */ T resolve(String partitionKey, String rowKey, Date timeStamp, HashMap properties, String etag) throws StorageException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy