View Javadoc
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  }