All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.runtime.internal.cflowstack.ThreadStackFactoryImpl Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/* *******************************************************************
 * Copyright (c) 2004 IBM Corporation
 *
 * All rights reserved.
 * This program and the accompanying materials are made available
 * under the terms of the Eclipse Public License v 2.0
 * which accompanies this distribution and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
 *
 * Contributors:
 *    Andy Clement     initial implementation
 * ******************************************************************/
package org.aspectj.runtime.internal.cflowstack;

import java.util.Stack;

public class ThreadStackFactoryImpl implements ThreadStackFactory {

	private static class ThreadStackImpl extends ThreadLocal implements ThreadStack {
		public Stack initialValue() {
		  return new Stack();
		}
		public Stack getThreadStack() {
			return get();
		}
		public void removeThreadStack() {
			this.remove();
		}
	}

	public ThreadStack getNewThreadStack() {
		return new ThreadStackImpl();
	}

	private static class ThreadCounterImpl extends ThreadLocal implements ThreadCounter {

		public Counter initialValue() {
		  return new Counter();
		}
		public Counter getThreadCounter() {
			return get();
		}

		public void removeThreadCounter() {
			this.remove();
		}

		public void inc() { getThreadCounter().value++; }
		public void dec() { getThreadCounter().value--; }
		public boolean isNotZero() { return getThreadCounter().value!= 0; }

		static class Counter {
		  protected int value = 0;
		}
	}

	public ThreadCounter getNewThreadCounter() {
		return new ThreadCounterImpl();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy