AddressRange.java :  » UnTagged » mosync » com » mobilesorcery » sdk » internal » Android Open Source

Android Open Source » UnTagged » mosync 
mosync » com » mobilesorcery » sdk » internal » AddressRange.java
/*  Copyright (C) 2010 Mobile Sorcery AB

    This program is free software; you can redistribute it and/or modify it
    under the terms of the Eclipse Public License v1.0.

    This program is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for
    more details.

    You should have received a copy of the Eclipse Public License v1.0 along
    with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.internal;

import java.util.Comparator;

public class AddressRange {
    
    public final static Comparator<AddressRange> START_COMPARATOR = new Comparator<AddressRange>() {
        public int compare(AddressRange range1, AddressRange range2) {
            return range1.startAddr - range2.startAddr;
        }
    };
    
    public final static Comparator<AddressRange> END_COMPARATOR = new Comparator<AddressRange>() {
        public int compare(AddressRange range1, AddressRange range2) {
            return range1.endAddr - range2.endAddr;
        }
    };
    
    private int startAddr;
    private int endAddr;

    public AddressRange(int startAddr, int endAddr) {
        this.startAddr = startAddr;
        this.endAddr = endAddr;
    }
    
    public boolean inRange(int addr) {
        return addr >= startAddr && addr <= endAddr;
    }
    
    public String toString() {
        return Integer.toHexString(startAddr) + ", " + Integer.toHexString(endAddr);
    }

    public static AddressRange parse(String addressRange) {
        String[] rangeParts = addressRange.split(",", 2);
        if (rangeParts.length == 2) {
            try {
                int startAddr = Integer.parseInt(rangeParts[0].trim(), 16);
                int endAddr = Integer.parseInt(rangeParts[1].trim(), 16);
                return new AddressRange(startAddr, endAddr);
            } catch (NumberFormatException e) {
                // Ignore.
            }
        }
        
        return null;
    }
    
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.