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

org.coos.messaging.util.URIHelper Maven / Gradle / Ivy

There is a newer version: 1.3.1
Show newest version
/**
 * COOS - Connected Objects Operating System (www.connectedobjects.org).
 *
 * Copyright (C) 2009 Telenor ASA and Tellu AS. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * 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
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see .
 *
 * You may also contact one of the following for additional information:
 * Telenor ASA, Snaroyveien 30, N-1331 Fornebu, Norway (www.telenor.no)
 * Tellu AS, Hagalokkveien 13, N-1383 Asker, Norway (www.tellu.no)
 */
package org.coos.messaging.util;

/**
 * @author Knut Eilif Husa, Tellu AS Helper class for parsing URIs
 */
public class URIHelper {

	private String endpointUri;
	private String path = "";
	private String endpoint;

	public URIHelper(String endpointUri) throws IllegalArgumentException {
		this.endpointUri = endpointUri;
		int i = endpointUri.indexOf("coos://");
		if (i == -1) {
			throw new IllegalArgumentException("Unknown protocol for uri: " + endpointUri);
		}
		i = i + 7; // end of protocol name part

		int j = endpointUri.indexOf("/", i + 1); // end of endpoint name part
		String s;
		if (j != -1) {
			endpoint = endpointUri.substring(i, j);
			path = endpointUri.substring(j);
		} else {
			endpoint = endpointUri.substring(i);
		}
	}

	public boolean isEndpointUuid() {
		return UuidHelper.isUuid(endpoint);
	}
	
	public boolean isEndpointQualified(){
		return endpoint.indexOf('.') != -1;
	}

	public String getEndpoint() {
		return endpoint;
	}
	
	public String getUnqualifiedEndpoint(){
		int idx = endpoint.indexOf('.');
		if(idx != -1){
			return endpoint.substring(idx+1);
		}
		return endpoint;
	}

	public void setEndpoint(String endpoint) {
		this.endpoint = endpoint;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public String getEndpointUri() {
		return "coos://" + endpoint + path;
	}

	public String getSegment() {
		int idx = endpoint.lastIndexOf('.');
		if (idx == 0){
			return ".";
		} else if (idx != -1) {
			return endpoint.substring(0, idx);
		} 
		return "";
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy