All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kilim.analysis.Range Maven / Gradle / Ivy

Go to download

Coroutines, continuations, fibers, actors and message passing for the JVM

There is a newer version: 2.0.2-jdk7
Show newest version
/* Copyright (c) 2006, Sriram Srinivasan
 *
 * You may distribute this software under the terms of the license 
 * specified in the file "License"
 */

package kilim.analysis;

/**
 * Used by catch handlers to handle overlapping ranges
 *
 */
public class Range {
    int from;
    int to;

    public Range(int aFrom, int aTo) {
        from = aFrom;
        to = aTo;
    }
    
    static Range intersect(int a1, int e1, int a2, int e2) {
        // a2 lies between a1 and e1 or a1 between a2 and e2
        // all comparisons are inclusive of endpoints
        assert a1 <= e1 && a2 <= e2;
        int a;
        if (a1 <= a2 && a2 <= e1) {
            a = a2;
        } else if (a2 <= a1 && a1 <= e2) {
            a = a1; 
        } else {
            return null;
        }
        return new Range(a, e1 < e2 ? e1 : e2);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy