org.aspectj.runtime.internal.cflowstack.ThreadStackFactoryImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjtools Show documentation
Show all versions of aspectjtools Show documentation
Tools from the AspectJ project
/* *******************************************************************
* 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 Object initialValue() {
return new Stack();
}
public Stack getThreadStack() {
return (Stack)get();
}
public void removeThreadStack() {
this.remove();
}
}
public ThreadStack getNewThreadStack() {
return new ThreadStackImpl();
}
private static class ThreadCounterImpl extends ThreadLocal implements ThreadCounter {
public Object initialValue() {
return new Counter();
}
public Counter getThreadCounter() {
return (Counter)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