/*******************************************************************************
* Copyright (c) 2009 STMicroelectronics.
* 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:
* Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.gcov.parser;
import java.io.Serializable;
import java.util.ArrayList;
public class Block implements Serializable{
/**
*
*/
private static final long serialVersionUID = -7665287885679756014L;
private final ArrayList<Arc> entryArcs = new ArrayList<>();
private final ArrayList<Arc> exitArcs = new ArrayList<>();
private final long flag;
private long numSuccs = 0;
private long numPreds = 0;
private long count = 0;
private boolean isCallSite = false;// Does the call
private boolean isCallReturn = false; // Is the return
private boolean isNonLocalReturn = false;
private boolean validChain = false;
private boolean invalidChain = false;
private boolean countValid = false;
private final BlkLine blkline = new BlkLine();
/**
* Constructor
*/
public Block(long flag) {
this.flag = flag;
}
/* getters & setters */
public long getFlag() {
return flag;
}
public ArrayList<Arc> getEntryArcs() {
return entryArcs;
}
public ArrayList<Arc> getExitArcs() {
return exitArcs;
}
public boolean isCallSite() {
return isCallSite;
}
public boolean isCallReturn() {
return isCallReturn;
}
public boolean isNonLocalReturn() {
return isNonLocalReturn;
}
public void addEntryArcs(Arc arcEntry) {
this.entryArcs.add(arcEntry);
}
public void addExitArcs(Arc arcExit) {
this.exitArcs.add(arcExit);
}
public void setCallSite(boolean isCallSite) {
this.isCallSite = isCallSite;
}
public void setCallReturn(boolean isCallReturn) {
this.isCallReturn = isCallReturn;
}
public void setNonLocalReturn(boolean isNonLocalReturn) {
this.isNonLocalReturn = isNonLocalReturn;
}
public void decNumSuccs() {
this.numSuccs--;
}
public void decNumPreds() {
this.numPreds--;
}
public void incNumPreds() {
this.numPreds++;
}
public void incNumSuccs() {
this.numSuccs++;
}
public boolean isValidChain() {
return validChain;
}
public void setValidChain(boolean validChain) {
this.validChain = validChain;
}
public boolean isInvalidChain() {
return invalidChain;
}
public void setInvalidChain(boolean invalidChain) {
this.invalidChain = invalidChain;
}
public long getCount() {
return count;
}
public void setCount(long count) {
this.count = count;
}
public void setCountValid(boolean countValid) {
this.countValid = countValid;
}
public boolean isCountValid() {
return countValid;
}
public long getNumSuccs() {
return numSuccs;
}
public long getNumPreds() {
return numPreds;
}
public void setNumSuccs(long numSuccs) {
this.numSuccs = numSuccs;
}
public void setNumPreds(long numPreds) {
this.numPreds = numPreds;
}
public long[] getEncoding() {
return blkline.encoding;
}
public void setEncoding(long[] lineNos) {
this.blkline.encoding = lineNos;
}
public int getLineNum() {
return blkline.num;
}
public void setNumLine(int numline) {
this.blkline.num = numline;
}
static class BlkLine implements Serializable{
/**
*
*/
private static final long serialVersionUID = 2757557929188979686L;
public long[] encoding;
public int num;
}
}