
org.yaoqiang.graph.io.graphml.GraphMLGenericEdge Maven / Gradle / Ivy
package org.yaoqiang.graph.io.graphml;
import java.awt.Point;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.w3c.dom.Element;
/**
* GraphMLGenericEdge
*
* @author Shi Yaoqiang([email protected])
*/
public class GraphMLGenericEdge {
private String configuration = "";
private String edgeLabel = "";
private List points = new ArrayList();
private Map properties = new HashMap();
private String bpmnType;
private String edgeSource;
private String edgeTarget;
public GraphMLGenericEdge(Element genericEdgeElement) {
this.configuration = genericEdgeElement.getAttribute(GraphMLConstants.CONFIGURATION);
Element labelElement = GraphMLUtils.childsTag(genericEdgeElement, GraphMLConstants.YWORKS + GraphMLConstants.NODE_LABEL);
if (labelElement != null) {
this.edgeLabel = labelElement.getTextContent();
}
Element pathElement = GraphMLUtils.childsTag(genericEdgeElement, GraphMLConstants.YWORKS + GraphMLConstants.PATH);
if (pathElement != null) {
List pointElements = GraphMLUtils.childsTags(pathElement, GraphMLConstants.YWORKS + GraphMLConstants.POINT);
for (Element el : pointElements) {
Double x = Double.valueOf(el.getAttribute(GraphMLConstants.X));
Double y = Double.valueOf(el.getAttribute(GraphMLConstants.Y));
Point point = new Point();
point.setLocation(x, y);
points.add(point);
}
}
Element stylePropertiesElement = GraphMLUtils.childsTag(genericEdgeElement, GraphMLConstants.YWORKS + GraphMLConstants.STYLE_PROPERTIES);
if (stylePropertiesElement != null) {
List propertyElements = GraphMLUtils.childsTags(stylePropertiesElement, GraphMLConstants.YWORKS + GraphMLConstants.PROPERTY);
for (Element el : propertyElements) {
properties.put(el.getAttribute(GraphMLConstants.NAME), el.getAttribute(GraphMLConstants.VALUE));
}
this.bpmnType = properties.get(GraphMLConstants.BPMN_TYPE);
}
}
public boolean isSequenceFlow() {
if (getBpmnType().equals("CONNECTION_TYPE_SEQUENCE_FLOW")) {
return true;
}
return false;
}
public boolean isConditionalSequenceFlow() {
if (getBpmnType().equals("CONNECTION_TYPE_CONDITIONAL_FLOW")) {
return true;
}
return false;
}
public boolean isDefaultSequenceFlow() {
if (getBpmnType().equals("CONNECTION_TYPE_DEFAULT_FLOW")) {
return true;
}
return false;
}
public boolean isAssociation() {
if (getBpmnType().equals("CONNECTION_TYPE_ASSOCIATION")) {
return true;
}
return false;
}
public boolean isDataAssociation() {
if (getBpmnType().equals("CONNECTION_TYPE_DIRECTED_ASSOCIATION")) {
return true;
}
return false;
}
public boolean isMessageFlow() {
if (getBpmnType().equals("CONNECTION_TYPE_MESSAGE_FLOW")) {
return true;
}
return false;
}
public boolean isConversationLink() {
if (getBpmnType().equals("CONNECTION_TYPE_CONVERSATION_LINK")) {
return true;
}
return false;
}
public String getConfiguration() {
return configuration;
}
public String getEdgeLabel() {
return edgeLabel == null ? "" : edgeLabel;
}
public List getPoints() {
return points;
}
public String getBpmnType() {
return bpmnType;
}
public String getEdgeSource() {
return edgeSource;
}
public String getEdgeTarget() {
return edgeTarget;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy