1package org.apache.archiva.webdav.util;
23/*4 * Licensed to the Apache Software Foundation (ASF) under one5 * or more contributor license agreements. See the NOTICE file6 * distributed with this work for additional information7 * regarding copyright ownership. The ASF licenses this file8 * to you under the Apache License, Version 2.0 (the9 * "License"); you may not use this file except in compliance10 * with the License. You may obtain a copy of the License at11 *12 * http://www.apache.org/licenses/LICENSE-2.013 *14 * Unless required by applicable law or agreed to in writing,15 * software distributed under the License is distributed on an16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY17 * KIND, either express or implied. See the License for the18 * specific language governing permissions and limitations19 * under the License.20 */2122import org.apache.commons.lang.ArrayUtils;
23import org.apache.commons.lang.StringUtils;
2425/**26 */27publicclassRepositoryPathUtil28 {
2930publicstatic String getRepositoryName( final String href )
31 {
32 String requestPathInfo = StringUtils.defaultString( href );
3334//remove prefix ie /repository/blah becomes /blah35 requestPathInfo = removePrefix( requestPathInfo );
3637// Remove prefixing slash as the repository id doesn't contain it;38if ( requestPathInfo.startsWith( "/" ) )
39 {
40 requestPathInfo = requestPathInfo.substring( 1 );
41 }
4243// Find first element, if slash exists.44int slash = requestPathInfo.indexOf( '/' );
45if ( slash > 0 )
46 {
47// Filtered: "central/org/apache/maven/" -> "central"48return requestPathInfo.substring( 0, slash );
49 }
50return requestPathInfo;
51 }
5253privatestatic String removePrefix( final String href )
54 {
55 String[] parts = StringUtils.split( href, '/' );
56 parts = (String[]) ArrayUtils.subarray( parts, 1, parts.length );
57if ( parts == null || parts.length == 0 )
58 {
59return"/";
60 }
6162 String joinedString = StringUtils.join( parts, '/' );
63if ( href.endsWith( "/" ) )
64 {
65 joinedString = joinedString + "/";
66 }
6768return joinedString;
69 }
70 }