tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/source/SourceLocation.java
changeset 56 aa2539c91954
parent 54 a151135b0cf9
child 60 e54443a6878c
child 62 1c2bb2fc7c87
--- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/source/SourceLocation.java	Wed Sep 29 17:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-* Represents a location in source
-*
-*/
-package com.nokia.tracecompiler.source;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Represents a location in source
- * 
- */
-public class SourceLocation extends SourceLocationBase {
-
-	/**
-	 * Location listeners
-	 */
-	private ArrayList<SourceLocationListener> locationListeners;
-
-	/**
-	 * Temporary array for callback purposes. Prevents concurrent modifications
-	 * if listeners are removed during a callback
-	 */
-	private ArrayList<SourceLocationListener> tempListeners;
-
-	/**
-	 * Reference count
-	 */
-	private int refCount = 0;
-
-	/**
-	 * Listener change flag
-	 */
-	private boolean listenersChanged = true;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param parser
-	 *            the parser owning this location
-	 * @param offset
-	 *            offset of location
-	 * @param length
-	 *            length of location
-	 */
-	public SourceLocation(SourceParser parser, int offset, int length) {
-		super(parser, offset, length);
-		parser.addLocation(this);
-		refCount = 1;
-	}
-
-	/**
-	 * Gets the name of the class which owns this location
-	 * 
-	 * @return the class name
-	 */
-	public String getClassName() {
-		String retval = null;
-		if (getParser() != null) {
-			SourceContext context = getParser().getContext(getOffset());
-			if (context != null) {
-				retval = context.getClassName();
-			}
-		}
-		return retval;
-	}
-
-	/**
-	 * Gets the name of function which owns this location
-	 * 
-	 * @return the function name
-	 */
-	public String getFunctionName() {
-		String retval = null;
-		if (getParser() != null) {
-			SourceContext context = getParser().getContext(getOffset());
-			if (context != null) {
-				retval = context.getFunctionName();
-			}
-		}
-		return retval;
-	}
-
-	/**
-	 * Adds a location listener to this location
-	 * 
-	 * @param listener
-	 *            the location listener
-	 */
-	public void addLocationListener(SourceLocationListener listener) {
-		if (locationListeners == null) {
-			locationListeners = new ArrayList<SourceLocationListener>();
-		}
-		locationListeners.add(listener);
-		listenersChanged = true;
-	}
-
-	/**
-	 * Removes a location listener from this location
-	 * 
-	 * @param listener
-	 *            the location listener
-	 */
-	public void removeLocationListener(SourceLocationListener listener) {
-		if (locationListeners != null) {
-			if (locationListeners.remove(listener)) {
-				listenersChanged = true;
-			}
-		}
-	}
-
-	/**
-	 * Gets the listener interfaces
-	 * 
-	 * @return the listeners
-	 */
-	protected Iterator<SourceLocationListener> getListeners() {
-		List<SourceLocationListener> list;
-		if (locationListeners != null) {
-			if (listenersChanged) {
-				listenersChanged = false;
-				if (tempListeners == null) {
-					tempListeners = new ArrayList<SourceLocationListener>();
-				}
-				tempListeners.clear();
-				tempListeners.addAll(locationListeners);
-			}
-			list = tempListeners;
-		} else {
-			list = Collections.emptyList();
-		}
-		return list.iterator();
-	}
-
-	/**
-	 * Increases the reference count of this location.
-	 * 
-	 * @see #dereference()
-	 */
-	public void reference() {
-		refCount++;
-	}
-
-	/**
-	 * Decrements the reference count of this location. When reference count is
-	 * 0, this is removed from source. Note that a location can also be removed
-	 * from source even if it has outstanding references left. In that case it
-	 * can no longer be selected.
-	 */
-	public void dereference() {
-		if (--refCount <= 0) {
-			removeFromSource();
-		}
-	}
-
-	/**
-	 * Removes this location from the source
-	 */
-	private void removeFromSource() {
-		delete();
-		if (getParser() != null) {
-			getParser().removeLocation(this);
-			resetParser();
-		}
-	}
-
-}