Commit 7fe97561 authored by Daniel Honsel's avatar Daniel Honsel
Browse files

made issue counter and other variables safe from thread interference

parent 6fd76f13
Loading
Loading
Loading
Loading
+40 −41
Original line number Diff line number Diff line
package de.ugoe.cs.swe.validation;

import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;

public class TTCN3StatisticsProvider {
	private int parsedLines;
	private long parseTime;
	private long analyzeTime;
	private int countUniversal;
	private int countGeneral;
	private int countNaming;
	private int countDocumentation;
	private int countLog;
	private int countStructure;
	private int countStyle;
	private int countModularization;
	private boolean importsInitialized;
	private boolean parsingCompleted;
	private AtomicInteger parsedLines = new AtomicInteger(0);
	private AtomicLong parseTime = new AtomicLong(0);
	private AtomicLong analyzeTime = new AtomicLong(0);
	private AtomicInteger countUniversal = new AtomicInteger(0);
	private AtomicInteger countGeneral = new AtomicInteger(0);
	private AtomicInteger countNaming = new AtomicInteger(0);
	private AtomicInteger countDocumentation = new AtomicInteger(0);
	private AtomicInteger countLog = new AtomicInteger(0);
	private AtomicInteger countStructure = new AtomicInteger(0);
	private AtomicInteger countStyle = new AtomicInteger(0);
	private AtomicInteger countModularization = new AtomicInteger(0);
	private AtomicBoolean parsingCompleted = new AtomicBoolean(false);

	public int getCountNaming() {
		return countNaming;
		return countNaming.get();
	}

	public void increaseCountNaming() {
		this.countNaming++;
		this.countNaming.incrementAndGet();
	}

	public int getCountUniversal() {
		return countUniversal;
		return countUniversal.get();
	}

	public void incrementCountUniversal() {
		this.countUniversal++;
		this.countUniversal.incrementAndGet();
	}

	public int getCountGeneral() {
		return countGeneral;
		return countGeneral.get();
	}

	public void incrementCountGeneral() {
		this.countGeneral++;
		this.countGeneral.incrementAndGet();
	}

	public int getCountDocumentation() {
		return countDocumentation;
		return countDocumentation.get();
	}

	public void incrementCountDocumentation() {
		this.countDocumentation++;
		this.countDocumentation.incrementAndGet();
	}

	public int getCountLog() {
		return countLog;
		return countLog.get();
	}

	public void incrementCountLog() {
		this.countLog++;
		this.countLog.incrementAndGet();
	}

	public int getCountStructure() {
		return countStructure;
		return countStructure.get();
	}

	public void incrementCountStructure() {
		this.countStructure++;
		this.countStructure.incrementAndGet();
	}

	public int getCountStyle() {
		return countStyle;
		return countStyle.get();
	}

	public void incrementCountStyle() {
		this.countStyle++;
		this.countStyle.incrementAndGet();
	}

	public int getCountModularization() {
		return countModularization;
		return countModularization.get();
	}

	public void incrementCountModularization() {
		this.countModularization++;
		this.countModularization.incrementAndGet();
	}

	public int getParsedLines() {
		return parsedLines;
		return parsedLines.get();
	}

	private static TTCN3StatisticsProvider instance = new TTCN3StatisticsProvider();
@@ -93,34 +96,30 @@ public class TTCN3StatisticsProvider {
	}

	public void addParsedLines(int lines) {
		parsedLines += lines;
		parsedLines.addAndGet(lines);
	}

	public long getParseTime() {
		return parseTime;
		return parseTime.get();
	}

	public void addParseTime(long pareTime) {
		this.parseTime += pareTime;
		this.parseTime.addAndGet(pareTime);
	}

	public long getAnalyzeTime() {
		return analyzeTime;
		return analyzeTime.get();
	}

	public void addAnalyzeTime(long analyzeTime) {
		this.analyzeTime += analyzeTime;
	}

	public boolean isImportsInitialized() {
		return importsInitialized;
		this.analyzeTime.addAndGet(analyzeTime);
	}

	public boolean isParsingCompleted() {
		return parsingCompleted;
		return parsingCompleted.get();
	}

	public void setParsingCompleted(boolean parsingCompleted) {
		this.parsingCompleted = parsingCompleted;
		this.parsingCompleted.getAndSet(parsingCompleted);
	}
}