/** * Get the provider specific part of the scm url. * * @param scmUrl A valid scm url to parse * @return The provider specific part of the scm url */ public static String getProviderSpecificPart( String scmUrl ) { String delimiter = getDelimiter( scmUrl ); scmUrl = scmUrl.substring( 4 ); int firstDelimiterIndex = scmUrl.indexOf( delimiter ); return scmUrl.substring( firstDelimiterIndex + 1 ); }
/** * Get the scm provider from the scm url. * * @param scmUrl A valid scm url to parse * @return The scm provider from the scm url */ public static String getProvider( String scmUrl ) { String delimiter = getDelimiter( scmUrl ); scmUrl = scmUrl.substring( 4 ); int firstDelimiterIndex = scmUrl.indexOf( delimiter ); return scmUrl.substring( 0, firstDelimiterIndex ); }
/** * Get the scm provider from the scm url. * * @param scmUrl A valid scm url to parse * @return The scm provider from the scm url */ public static String getProvider( String scmUrl ) { String delimiter = getDelimiter( scmUrl ); scmUrl = scmUrl.substring( 4 ); int firstDelimiterIndex = scmUrl.indexOf( delimiter ); return scmUrl.substring( 0, firstDelimiterIndex ); }
/** * Get the provider specific part of the scm url. * * @param scmUrl A valid scm url to parse * @return The provider specific part of the scm url */ public static String getProviderSpecificPart( String scmUrl ) { String delimiter = getDelimiter( scmUrl ); scmUrl = scmUrl.substring( 4 ); int firstDelimiterIndex = scmUrl.indexOf( delimiter ); return scmUrl.substring( firstDelimiterIndex + 1 ); }
getDelimiter( scmUrl );
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public List<String> validateScmRepository( String scmUrl ) { List<String> messages = new ArrayList<String>(); messages.addAll( ScmUrlUtils.validate( scmUrl ) ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider; try { provider = getProviderByType( providerType ); } catch ( NoSuchScmProviderException e ) { messages.add( "No such provider installed '" + providerType + "'." ); return messages; } String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); List<String> providerMessages = provider.validateScmUrl( scmSpecificUrl, ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ) ); if ( providerMessages == null ) { throw new RuntimeException( "The SCM provider cannot return null from validateScmUrl()." ); } messages.addAll( providerMessages ); return messages; }
/** * {@inheritDoc} */ public ScmRepository makeScmRepository( String scmUrl ) throws ScmRepositoryException, NoSuchScmProviderException { if ( scmUrl == null ) { throw new NullPointerException( "The scm url cannot be null." ); } char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); ScmProviderRepository providerRepository = provider.makeProviderScmRepository( scmSpecificUrl, delimiter ); return new ScmRepository( providerType, providerRepository ); }
/** * {@inheritDoc} */ public List<String> validateScmRepository( String scmUrl ) { List<String> messages = new ArrayList<String>(); messages.addAll( ScmUrlUtils.validate( scmUrl ) ); String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider; try { provider = getProviderByType( providerType ); } catch ( NoSuchScmProviderException e ) { messages.add( "No such provider installed '" + providerType + "'." ); return messages; } String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); List<String> providerMessages = provider.validateScmUrl( scmSpecificUrl, ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ) ); if ( providerMessages == null ) { throw new RuntimeException( "The SCM provider cannot return null from validateScmUrl()." ); } messages.addAll( providerMessages ); return messages; }