blob: 76e81f571f43677b8922d8c6a13bde0a337494ba [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004-2008 Akos Horvath, Gergely Varro and Daniel Varro
* 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:
* Akos Horvath, Gergely Varro - initial API and implementation
*******************************************************************************/
package org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.searchgraph;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.EdgeType;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.searchgraph.EdgeTypeinAlgorithm;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.searchgraph.SearchGraphNode;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.searchgraph.traceability.AbstractTraceabilityElement;
import org.eclipse.viatra2.gtasm.patternmatcher.impl.patternmatcher.internal.searchgraph.traceability.EdgeTraceabilityElement;
public class SearchGraphEdge extends AbstractNode {
private int oldWeight = -1, weight = -1, idinSearchPath= -1;
private EdgeTypeinAlgorithm type = EdgeTypeinAlgorithm.FREE;
private SearchGraphNode targetNode, sourceNode;
private EdgeType vpmEdgetype;
private SearchGraphEdge inverseEdge = null;
private boolean isSource;
private EdgeTraceabilityElement traceabilityElement;
public int getOldWeight() {
return oldWeight;
}
public void setOldWeight(int oldWeight) {
this.oldWeight = oldWeight;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public EdgeTypeinAlgorithm getEdgeTypeinAlgorithm() {
return type;
}
public void setEdgeTypeinAlgorithm(EdgeTypeinAlgorithm type) {
this.type = type;
}
public int getIdinSearchPath() {
return idinSearchPath;
}
public void setIdinSearchPath(int idinSearchPath) {
this.idinSearchPath = idinSearchPath;
}
public SearchGraphNode getSourceNode() {
return sourceNode;
}
public void setSourceNode(SearchGraphNode sourceNode) {
this.sourceNode = sourceNode;
}
public SearchGraphNode getTargetNode() {
return targetNode;
}
public void setTargetNode(SearchGraphNode targetNode) {
this.targetNode = targetNode;
}
public EdgeType getVPMEdgeType() {
return vpmEdgetype;
}
public void setVPMEdgeType(EdgeType vpmEdgetype) {
this.vpmEdgetype = vpmEdgetype;
}
public boolean isSource() {
return isSource;
}
public void setSource(boolean isSource) {
this.isSource = isSource;
}
/**
* @return the inverseEdge
*/
public SearchGraphEdge getInverseEdge() {
return inverseEdge;
}
/**
* @param inverseEdge the inverseEdge to set
*/
public void setInverseEdge(SearchGraphEdge inverseEdge) {
this.inverseEdge = inverseEdge;
inverseEdge.NonRecursiveInverseEdgeSet(this);
}
/**
* @param inverseEdge the inverseEdge to set
*/
private void NonRecursiveInverseEdgeSet(SearchGraphEdge inverseEdge) {
this.inverseEdge = inverseEdge;
}
/* (non-Javadoc)
* @see org.eclipse.viatra2.gtasm.patternmatcher.internal.AbstractNode#setChecked(boolean)
*/
@Override
public void setChecked(boolean checked) {
super.setChecked(checked);
if(inverseEdge != null)
inverseEdge.nonRecursiveSetChecked(checked);
}
private void nonRecursiveSetChecked(boolean checked) {
super.setChecked(checked);
}
/* (non-Javadoc)
* @see org.eclipse.viatra2.gtasm.patternmatcher.internal.AbstractNode#clear()
*/
@Override
public void clear() {
//super.clear();
setChecked(false);
}
@Override
public EdgeTraceabilityElement getTraceabilityElement() {
return traceabilityElement;
}
public void setTraceabilityElement(EdgeTraceabilityElement element) {
traceabilityElement = element;
}
}