/*******************************************************************************
 * Copyright (c) 2009, 2010, 2011 Nokia and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * Nokia - Initial API and implementation
 * Broadcom - addition of properties
 *******************************************************************************/
package org.eclipse.cdt.debug.edc.symbols;

import java.util.Map;

import org.eclipse.cdt.core.IAddress;

/**
 * Interface representing a symbol from the symbol table
 * @since 2.0
 */
public interface ISymbol extends Comparable<Object>, IAddressInterval, IHasSize {

	/**
	 * the executable section containing this symbol
	 * @since 3.0
	 */
	static final String PROPERTY_CONTAINER = IExecutableSection.PROPERTY_CONTAINER;

	/**
	 * Symbol has a type indicating executable code such as a function
	 * @since 3.0
	 */
	static final String PROPERTY_EXECUTABLE = IExecutableSection.PROPERTY_EXECUTABLE;

	/**
	 * Symbol has type indicating that it is for a data object
	 * @since 3.0
	 */
	static final String PROPERTY_DATA = "data"; //$NON-NLS-1$

	/**
	 * Symbol is neither executable code nor data but something else such as a file or section
	 * @since 3.0
	 */
	static final String PROPERTY_NOT_EXECUTABLE_OR_DATA = "notExecutableOrData"; //$NON-NLS-1$

	/**
	 * Symbol represents a file
	 * @since 3.0
	 */
	static final String PROPERTY_FILE = "file"; //$NON-NLS-1$

	/**
	 * Symbol is for a section
	 * @since 3.0
	 */
	static final String PROPERTY_SECTION = "section"; //$NON-NLS-1$

	/**
	 * Get the address of the symbol
	 * 
	 * @return the symbol address
	 */
	IAddress getAddress();

	/**
	 * Get the size of the symbol
	 * 
	 * @return the symbol size
	 */
	long getSize();

	/**
	 * Get the properties of the section
	 *
	 * @return the section properties
	 * @since 3.0
	 */
	Map<String, Object> getProperties();
}
