org.ops4j.pax.url.classpath.internal.Parser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pax-url-classpath Show documentation
Show all versions of pax-url-classpath Show documentation
OPS4J Pax Url - classpath: protocol handler
/*
* Copyright 2007 Alin Dreghiciu.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.ops4j.pax.url.classpath.internal;
import java.net.MalformedURLException;
/**
* Parser for classpath: protocol.
*
* @author Alin Dreghiciu
* @see Connection
* @since August 15, 2007
*/
public class Parser
{
/**
* Syntax for the url; to be shown on exception messages.
*/
private static final String SYNTAX = "classpath:[//bundle_symbolic_name/]path_to_resource";
/**
* Parsed resource name.
*/
private String m_resourceName;
/**
* Creates a new protocol parser.
*
* @param path the path part of the url (without starting classpath:)
*
* @throws java.net.MalformedURLException if provided path does not comply to expected syntax
*/
public Parser( final String path )
throws MalformedURLException
{
if( path == null )
{
throw new MalformedURLException( "Path cannot be null. Syntax " + SYNTAX );
}
if( "".equals( path.trim() ) || "/".equals( path.trim() ) )
{
throw new MalformedURLException( "Path cannot be empty. Syntax " + SYNTAX );
}
m_resourceName = path;
// remove leading slash
if( m_resourceName.startsWith( "/" ) )
{
m_resourceName = m_resourceName.substring( 1 );
}
}
/**
* Return the parsed resource name.
*
* @return parsed resource name
*/
public String getResourceName()
{
return m_resourceName;
}
}