litesoft
@ 974
litesoft / trunk / Java / ScarPlus / src / com / esotericsoftware / scar / ProjectCache.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
package com.esotericsoftware.scar; import com.esotericsoftware.scar.support.*; import java.io.*; import java.util.*; class ProjectCache { private final Map<File, ProjectFromFile> mProjectByPath = new HashMap<File, ProjectFromFile>(); public ProjectFromFile getByPath( File pPathToProjectFile, ProjectFactory pFactory ) { ProjectFromFile zProject; synchronized ( mProjectByPath ) { if ( mProjectByPath.containsKey( pPathToProjectFile ) ) { zProject = mProjectByPath.get( pPathToProjectFile ); if ( zProject != null ) { return zProject; } throw new IllegalStateException( "Circular reference to Project: " + pPathToProjectFile ); } mProjectByPath.put( pPathToProjectFile, null ); } zProject = pFactory.createProject( pPathToProjectFile ); synchronized ( mProjectByPath ) { if (null != mProjectByPath.put( pPathToProjectFile, zProject )) { throw new IllegalStateException( "Duplicate createtion for Project: " + pPathToProjectFile ); } } zProject.initialize( pFactory ); return zProject; } public List<Project> getAllProjects() { return new ArrayList<Project>( mProjectByPath.values() ); } } |
Commits for litesoft/trunk/Java/ScarPlus/src/com/esotericsoftware/scar/ProjectCache.java
Revision | Author | Commited | Message |
---|---|---|---|
974 | GeorgeS | Mon 25 Aug, 2014 00:35:54 +0000 | Updated to support usage specific artifact repositories |