1 /*** 2 * Copyright (C) 2008 Jeremy Thomerson (jthomerson@users.sourceforge.net) 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package net.sf.vcaperture.web.models; 18 19 import net.sf.vcaperture.model.AbstractRepository; 20 import net.sf.vcaperture.model.RepoFile; 21 22 public class RepoAndPathContext { 23 24 private static final RepoFile NO_FILE_EXISTS = new RepoFile(); 25 26 private final AbstractRepository mRepository; 27 private final String mPath; 28 private transient RepoFile mFile; 29 30 public RepoAndPathContext(final AbstractRepository repository, final String path) { 31 super(); 32 mRepository = repository; 33 mPath = path; 34 } 35 36 public String getPath() { 37 return mPath; 38 } 39 40 public AbstractRepository getRepository() { 41 return mRepository; 42 } 43 44 public RepoFile getRepoFile() { 45 if (mFile == null) { 46 mFile = mRepository.getFile(mPath); 47 if (mFile == null) { 48 mFile = NO_FILE_EXISTS; 49 } 50 } 51 return mFile == NO_FILE_EXISTS ? null : mFile; 52 } 53 54 }