package com.sap.furcas.runtime.textblocks.modifcation; import static com.sap.furcas.runtime.textblocks.TbNavigationUtil.getSubNodesSize; import com.sap.furcas.metamodel.FURCAS.textblocks.DocumentNode; import com.sap.furcas.metamodel.FURCAS.textblocks.TextBlock; import com.sap.furcas.metamodel.FURCAS.textblocks.Version; public class TbVersionUtil { public static void setVersion(DocumentNode node, Version version) { node.setVersion(version); } @SuppressWarnings("unchecked") public static <Type extends DocumentNode> Type getOtherVersion(Type documentNode, Version version) { if (documentNode.getVersion() == version) { return documentNode; } else { for (DocumentNode otherVersion : documentNode.getOtherVersions()) { if (otherVersion.getVersion() == version) { return (Type) otherVersion; } } return null; } } public static boolean hasChildChanges(TextBlock node, Version version) { TextBlock otherVersion = getOtherVersion(node, version); return otherVersion != null && (getSubNodesSize(node) != getSubNodesSize(otherVersion)); } }