/**
*
*/
package org.minnal.instrument;
import org.minnal.instrument.entity.metadata.CollectionMetaData;
/**
* @author ganeshs
*
*/
public interface NamingStrategy {
/**
* @param entityClass
* @return
*/
String getEntityName(Class<?> entityClass);
/**
* @param collection
* @return
*/
String getEntityName(CollectionMetaData collection);
/**
* @param entityName
* @return
*/
String getResourceName(String entityName);
/**
* @param entityName
* @return
*/
String getResourceName(Class<?> entityClass);
/**
* @param entityName
* @return
*/
String getPathSegment(String segment);
/**
* Return back the entity resource name given a collection field name
*
* @param name
* @return
*/
String getEntityCollectionName(String name);
/**
* Returns the resource class name from the entity class
*
* @param entityClass
* @return
*/
String getResourceClassName(Class<?> entityClass);
/**
* Returns the resource wrapper class name from the resource class
*
* @param resourceClass
* @return
*/
String getResourceWrapperClassName(Class<?> resourceClass);
/**
* Returns the query param name
*
* @param name
* @return
*/
String getQueryParamName(String name);
}