workcraft/workcraft

View on GitHub
workcraft/XmasPlugin/src/org/workcraft/plugins/xmas/utils/XmasUtils.java

Summary

Maintainability
A
1 hr
Test Coverage
package org.workcraft.plugins.xmas.utils;

import org.workcraft.dom.Node;
import org.workcraft.plugins.xmas.VisualXmas;
import org.workcraft.plugins.xmas.Xmas;
import org.workcraft.plugins.xmas.components.VisualXmasComponent;
import org.workcraft.plugins.xmas.components.VisualXmasContact;
import org.workcraft.plugins.xmas.components.XmasComponent;
import org.workcraft.plugins.xmas.components.XmasContact;

public class XmasUtils {

    public static XmasComponent getConnectedComponent(final Xmas xmas, XmasContact contact) {
        XmasComponent result = null;
        if (contact.isInput()) {
            for (Node prevNode: xmas.getPreset(contact)) {
                if (prevNode instanceof XmasContact) {
                    result = (XmasComponent) prevNode.getParent();
                    break;
                }
            }
        } else {
            for (Node succNode: xmas.getPostset(contact)) {
                if (succNode instanceof XmasContact) {
                    result = (XmasComponent) succNode.getParent();
                    break;
                }
            }
        }
        return result;
    }

    public static VisualXmasComponent getConnectedComponent(final VisualXmas visualXmas, VisualXmasContact visualContact) {
        Xmas xmas = visualXmas.getMathModel();
        XmasContact contact = visualContact.getReferencedComponent();
        XmasComponent component = getConnectedComponent(xmas, contact);
        return visualXmas.getVisualComponent(component, VisualXmasComponent.class);
    }

    public static XmasContact getConnectedContact(final Xmas xmas, XmasContact contact) {
        XmasContact result = null;
        if (contact.isInput()) {
            for (Node prevNode: xmas.getPreset(contact)) {
                if (prevNode instanceof XmasContact) {
                    result = (XmasContact) prevNode;
                    break;
                }
            }
        } else {
            for (Node succNode: xmas.getPostset(contact)) {
                if (succNode instanceof XmasContact) {
                    result = (XmasContact) succNode;
                    break;
                }
            }
        }
        return result;
    }

    public static VisualXmasContact getConnectedContact(final VisualXmas visualXmas, VisualXmasContact visualContact) {
        Xmas xmas = visualXmas.getMathModel();
        XmasContact contact = visualContact.getReferencedComponent();
        XmasContact connectedContact = getConnectedContact(xmas, contact);
        return visualXmas.getVisualComponent(connectedContact, VisualXmasContact.class);
    }

}