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

org.metawidget.util.simple.PathUtils Maven / Gradle / Ivy

There is a newer version: 4.2
Show newest version
// Metawidget (licensed under LGPL)
//
// 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

package org.metawidget.util.simple;

/**
 * Utilities for working with type/name-formatted Strings
 *
 * @author Richard Kennard
 */

public class PathUtils {

	//
	// Public statics
	//

	public static TypeAndNames parsePath( String path ) {

		return new TypeAndNames( path, StringUtils.SEPARATOR_FORWARD_SLASH_CHAR );
	}

	public static TypeAndNames parsePath( String path, char separator ) {

		return new TypeAndNames( path, separator );
	}

	/**
	 * Tuple for returning a type and an array of names.
	 * 

* Uses lazy initialization to save on regex calls. */ public static class TypeAndNames { // // Private methods // private String mPath; private char mSeparator; private String mParsedType; private String mParsedNames; private String[] mParsedNamesAsArray; // // Constructor // public TypeAndNames( String path, char separator ) { mPath = path.trim(); mSeparator = separator; } // // Public methods // public String getType() { if ( mParsedType == null ) { int indexOfTypeEnd = mPath.indexOf( mSeparator ); // Just type? if ( indexOfTypeEnd == -1 ) { mParsedType = mPath; mParsedNames = ""; } else { mParsedType = mPath.substring( 0, indexOfTypeEnd ); // Ends in separator? if ( indexOfTypeEnd == mPath.length() - 1 ) { mParsedNames = ""; } else { mParsedNames = mPath.substring( indexOfTypeEnd + 1 ); } } } return mParsedType; } public String getNames() { if ( mParsedNames == null ) { getType(); } return mParsedNames; } public String[] getNamesAsArray() { if ( mParsedNamesAsArray == null ) { String names = getNames(); if ( "".equals( names ) ) { mParsedNamesAsArray = EMPTY_STRING_ARRAY; } else { mParsedNamesAsArray = getNames().split( "\\" + mSeparator ); } } return mParsedNamesAsArray; } } // // Private statics // static final String[] EMPTY_STRING_ARRAY = new String[0]; // // Private constructor // private PathUtils() { // Can never be called } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy