class CloudFilePathUtils extends AbstractimageFilePath {

	private String basePath = Constants.STATIC_URI;
	private String contentUrl = null;

	@Override
	public String getBasePath(MerchantStore store) {
		//store has no incidence, basepath drives the url
		return basePath;
	}

	@Override
	public void setBasePath(String basePath) {
		this.basePath = basePath;
	}
	@Override
	public String getContextPath() {
		return super.getProperties().getProperty(CONTEXT_PATH);
	}
	
	/**
	 * Builds a static content image file path that can be used by image servlet
	 * utility for getting the physical image
	 * @param store
	 * @param imageName
	 * @return
	 */
	@Override
	public String buildStaticImageUtils(MerchantStore store, String imageName) {<FILL_FUNCTION_BODY>}
	
	/**
	 * Builds a static content image file path that can be used by image servlet
	 * utility for getting the physical image by specifying the image type
	 * @param store
	 * @param imageName
	 * @return
	 */
	@Override
	public String buildStaticImageUtils(MerchantStore store, String type, String imageName) {
		StringBuilder imgName = new StringBuilder().append(getBasePath(store)).append(Constants.FILES_URI).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH);
		if(type!=null && !FileContentType.IMAGE.name().equals(type)) {
			imgName.append(type).append(Constants.SLASH);
		}
		if(!StringUtils.isBlank(imageName)) {
			imgName.append(imageName);
		}
		return imgName.toString();

	}

	@Override
	public void setContentUrlPath(String contentUrl) {
		this.contentUrl = contentUrl;
		
	}

}

		StringBuilder imgName = new StringBuilder().append(getBasePath(store)).append(Constants.FILES_URI).append(Constants.SLASH).append(store.getCode()).append(Constants.SLASH);
				if(!StringUtils.isBlank(imageName)) {
					imgName.append(imageName);
				}
		return imgName.toString();
				
	
<methods>public non-sealed void <init>() ,public java.lang.String buildCustomTypeImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String, com.salesmanager.core.model.content.FileContentType) ,public java.lang.String buildLargeProductImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String, java.lang.String) ,public java.lang.String buildManufacturerImageUtils(com.salesmanager.core.model.merchant.MerchantStore, com.salesmanager.core.model.catalog.product.manufacturer.Manufacturer, java.lang.String) ,public java.lang.String buildProductImageUtils(com.salesmanager.core.model.merchant.MerchantStore, com.salesmanager.core.model.catalog.product.Product, java.lang.String) ,public java.lang.String buildProductImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String, java.lang.String) ,public java.lang.String buildProductPropertyImageFilePath(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String) ,public java.lang.String buildProductPropertyImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String) ,public java.lang.String buildStaticContentFilePath(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String) ,public java.lang.String buildStaticImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String) ,public java.lang.String buildStaticImageUtils(com.salesmanager.core.model.merchant.MerchantStore, java.lang.String, java.lang.String) ,public java.lang.String buildStoreLogoFilePath(com.salesmanager.core.model.merchant.MerchantStore) ,public abstract java.lang.String getBasePath(com.salesmanager.core.model.merchant.MerchantStore) ,public java.util.Properties getProperties() ,public abstract void setBasePath(java.lang.String) ,public abstract void setContentUrlPath(java.lang.String) ,public void setProperties(java.util.Properties) <variables>protected static final java.lang.String CONTEXT_PATH,public java.util.Properties properties