package com.ttv.acs.util;

import org.apache.log4j.Logger;


public class ADIUtil {

	private final static Logger log = Logger.getLogger(ADIUtil.class);

	public static String getNameServerAddress() {
		return getProperty(PConstants.ACS_NAME_SERVER_CORBALOC, PConstants.ACS_NAME_SERVER_CORBALOC_DEFAULT);
	}

	public static String getContentStore() {
		return getProperty(PConstants.ACS_CONTENTSTORE, PConstants.ADPOINT_ACS_DEFAULT_CONTENTSTORE);
	}

	public static boolean getCheckChecksumFlag(){
		String checksumFlag = getProperty(PConstants.CHECK_CHECKSUM_FLAG, new Boolean("false").toString());
		try{
			return new Boolean(checksumFlag).booleanValue();
		}
		catch(Exception ex){
			log.warn("[configuration error] "
							+ PConstants.CHECK_CHECKSUM_FLAG
							+ " adi.properties - property value:" + checksumFlag + " is not correct." );
			return false;
		}
			
	}
	/**
	 * @return port number as configured which is used to bind PackageFactory
	 */
	public static String getPackageFactoryPort(){
		return getProperty(PConstants.PACKAGE_FACTORY_PORT, "42160");
	}
	
	/**
	 * 
	 * @return port number as configured which is used to bind AssetFactory
	 */
	public static String getAssetFactoryPort(){
		return getProperty(PConstants.ASSET_FACTORY_PORT, "42100");
	}
	
	public static String getProperty(String propertyName, String defaultValue) {
		try {
			return ApplicationProperties.getInstance().getProperty(propertyName, defaultValue);
		} catch (Exception e) {
			log.error("Failed to get property " + propertyName, e);
			throw new RuntimeException(e);
		}
	}
}
