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

org.xmlvm.util.analytics.data.Util Maven / Gradle / Ivy

There is a newer version: 0.96-beta4
Show newest version
/* Copyright (c) 2002-2011 by XMLVM.org
 *
 * Project Info:  http://www.xmlvm.org
 *
 * This program 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 2.1 of the License, or
 * (at your option) any later version.
 *
 * This library 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 library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
 * USA.
 */

package org.xmlvm.util.analytics.data;

import org.xmlvm.util.universalfile.UniversalFile;

/**
 * Common functionality used for analytical puproses.
 */
public class Util
{

	public static class JarFileData
	{
		public final UniversalFile[] classes;
		public final String basePath;

		public JarFileData(UniversalFile[] classes, String basePath)
		{
			this.classes= classes;
			this.basePath= basePath;
		}
	}

	/**
	 * A little helper class that contains package- and class name.
	 */
	public static class PackagePlusClassName
	{
		public String packageName= "";
		public String className= "";

		public PackagePlusClassName(String className)
		{
			this.className= className;
		}

		public PackagePlusClassName(String packageName, String className)
		{
			this.packageName= packageName;
			this.className= className;
		}

		public String toString()
		{
			if (packageName.isEmpty())
			{
				return className;
			}
			else
			{
				return packageName.replace('/', '.') + "." + className;
			}
		}
	}

	private Util()
	{
	}

	/**
	 * Converts a class name in the form of a/b/C into a
	 * {@link PackagePlusClassName} object.
	 */
	public static PackagePlusClassName parseClassName(String packagePlusClassName)
	{
		int lastSlash= packagePlusClassName.lastIndexOf('/');
		if (lastSlash == -1)
		{
			return new PackagePlusClassName(packagePlusClassName);
		}

		String className= packagePlusClassName.substring(lastSlash + 1).replace('/', '.');
		String packageName= packagePlusClassName.substring(0, lastSlash);

		return new PackagePlusClassName(packageName, className);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy