/** * */ package com.sap.furcas.runtime.textblocks; /** * */ public class CoverageBean { private boolean isCovered; private boolean nodeStartsLater; private boolean nodeEndsLater; /** * factory method * @param nodeStart * @param nodeEnd * @param regionStart * @param regionEnd * @return */ public static CoverageBean getCoverageBean( int nodeStart, int nodeEnd, int regionStart, int regionEnd) { CoverageBean coverage = new CoverageBean(); // if (regionStart < regionEnd) { if (nodeEnd <= regionStart) { coverage.setCovered(false); coverage.setNodeStartsLater(false); coverage.setNodeEndsLater(false); } else if (regionEnd < nodeStart) { coverage.setCovered(false); coverage.setNodeStartsLater(true); coverage.setNodeEndsLater(true); } else { // coverage cases coverage.setCovered(true); coverage.setNodeStartsLater(nodeStart > regionStart); coverage.setNodeEndsLater(nodeEnd > regionEnd); } // } else { // regionstart == regionEnd // int position = regionStart; // if (position >= nodeEnd) { // coverage.setCovered(false); // coverage.setNodeStartsLater(false); // coverage.setNodeEndsLater(false); // } else if (position < nodeStart) { // coverage.setCovered(false); // coverage.setNodeStartsLater(true); // coverage.setNodeEndsLater(true); // } else { // coverage.setCovered(true); // coverage.setNodeStartsLater(nodeStart > regionStart); // coverage.setNodeEndsLater(nodeEnd > regionEnd); // } // } return coverage; } /** * @param isCovered the isCovered to set */ public void setCovered(boolean isCovered) { this.isCovered = isCovered; } /** * @param nodeStartsLater the nodeStartsLater to set */ public void setNodeStartsLater(boolean nodeStartsLater) { this.nodeStartsLater = nodeStartsLater; } /** * @return the isCovered */ public boolean isCovered() { return isCovered; } /** * @return the nodeStartsLater */ public boolean isNodeStartsLater() { return nodeStartsLater; } /** * @return the nodeEndsLater */ public boolean isNodeEndsLater() { return nodeEndsLater; } /** * @param nodeEndsLater the nodeEndsLater to set */ public void setNodeEndsLater(boolean nodeEndsLater) { this.nodeEndsLater = nodeEndsLater; } /** * true if node is covered && nodestart > regionstart && nodeEnd <= regionEnd * @return */ public boolean isNodeRealInside() { return this.isCovered() && this.isNodeStartsLater() && ! this.isNodeEndsLater(); } }