/*
   A RDP connection reference. References can use bookmark ids or hostnames to connect to a RDP
   server.

   Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz

   This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
   If a copy of the MPL was not distributed with this file, You can obtain one at
   http://mozilla.org/MPL/2.0/.
*/

package com.freerdp.freerdpcore.domain;

public class ConnectionReference
{
	public static final String PATH_MANUAL_BOOKMARK_ID = "MBMID/";
	public static final String PATH_HOSTNAME = "HOST/";
	public static final String PATH_PLACEHOLDER = "PLCHLD/";
	public static final String PATH_FILE = "FILE/";

	public static String getManualBookmarkReference(long bookmarkId)
	{
		return (PATH_MANUAL_BOOKMARK_ID + bookmarkId);
	}

	public static String getHostnameReference(String hostname)
	{
		return (PATH_HOSTNAME + hostname);
	}

	public static String getPlaceholderReference(String name)
	{
		return (PATH_PLACEHOLDER + name);
	}

	public static String getFileReference(String uri)
	{
		return (PATH_FILE + uri);
	}

	public static boolean isBookmarkReference(String refStr)
	{
		return refStr.startsWith(PATH_MANUAL_BOOKMARK_ID);
	}

	public static boolean isManualBookmarkReference(String refStr)
	{
		return refStr.startsWith(PATH_MANUAL_BOOKMARK_ID);
	}

	public static boolean isHostnameReference(String refStr)
	{
		return refStr.startsWith(PATH_HOSTNAME);
	}

	public static boolean isPlaceholderReference(String refStr)
	{
		return refStr.startsWith(PATH_PLACEHOLDER);
	}

	public static boolean isFileReference(String refStr)
	{
		return refStr.startsWith(PATH_FILE);
	}

	public static long getManualBookmarkId(String refStr)
	{
		return Integer.parseInt(refStr.substring(PATH_MANUAL_BOOKMARK_ID.length()));
	}

	public static String getHostname(String refStr)
	{
		return refStr.substring(PATH_HOSTNAME.length());
	}

	public static String getPlaceholder(String refStr)
	{
		return refStr.substring(PATH_PLACEHOLDER.length());
	}

	public static String getFile(String refStr)
	{
		return refStr.substring(PATH_FILE.length());
	}
}
