001/* 002 * (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * bstefanescu 018 */ 019package org.nuxeo.ecm.automation.client.model; 020 021/** 022 * @author <a href="mailto:[email protected]">Bogdan Stefanescu</a> 023 */ 024public class PathRef extends DocRef { 025 026 private static final long serialVersionUID = 1L; 027 028 public PathRef(String path) { 029 super(path); 030 } 031 032 public String value() { 033 return ref; 034 } 035 036 public PathRef getParent() { 037 if (ref.length() == 0 || ref.equals("/")) { 038 return null; 039 } 040 String path = ref; 041 if (path.endsWith("/")) { 042 path = path.substring(0, path.length() - 1); 043 } 044 int p = path.lastIndexOf('/'); 045 if (p == -1) { 046 return new PathRef("/"); 047 } else { 048 return new PathRef(path.substring(0, p)); 049 } 050 } 051 052 public PathRef getChild(String childPath) { 053 StringBuilder buf = new StringBuilder(ref); 054 if (ref.endsWith("/")) { 055 buf.append(childPath); 056 } else { 057 buf.append('/').append(childPath); 058 } 059 return new PathRef(buf.toString()); 060 } 061 062}