litesoft
@ 974
litesoft / trunk / Java / ScarPlus / src / com / esotericsoftware / filesystem / RootedPaths.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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
package com.esotericsoftware.filesystem; import com.esotericsoftware.scar.*; import java.io.*; import java.util.*; public final class RootedPaths { private long mGreatestLastModified; private File mCanonicalRootDirectory; private Set<String> mCanonicalRelativePaths = new HashSet<String>(); public RootedPaths( File pCanonicalRootDirectory ) { Utils.assertNotNull( "CanonicalRootDirectory", mCanonicalRootDirectory = pCanonicalRootDirectory ); } public void addCanonicalRelativePath( String pPath ) { mGreatestLastModified = Math.max( mGreatestLastModified, new File( mCanonicalRootDirectory, pPath = Utils.assertNotEmpty( "Path", pPath ) ).lastModified() ); mCanonicalRelativePaths.add( pPath ); } public long getGreatestLastModified() { return mGreatestLastModified; } public File getCanonicalRootDirectory() { return mCanonicalRootDirectory; } public int count() { return mCanonicalRelativePaths.size(); } public List<FilePath> collectPaths( List<FilePath> pPaths ) { for ( String zPath : mCanonicalRelativePaths ) { pPaths.add( FilePath.canonical( mCanonicalRootDirectory, zPath ) ); } return pPaths; } @Override public int hashCode() { return mCanonicalRootDirectory.hashCode(); } public boolean equals( RootedPaths them ) { return (them != null) && this.mCanonicalRootDirectory.equals( them.mCanonicalRootDirectory ); } @Override public boolean equals( Object o ) { return (o instanceof RootedPaths) && equals( (RootedPaths) o ); } /* Package Friendly */ void mergeIn( RootedPaths them ) // Assume only called by the RootedPathsCollection when the mCanonicalRootDirectory(s) are equal! { this.mGreatestLastModified = Math.max( this.mGreatestLastModified, them.mGreatestLastModified ); this.mCanonicalRelativePaths.addAll( them.mCanonicalRelativePaths ); } @Override public String toString() { if ( mCanonicalRelativePaths.isEmpty() ) { return ""; } List<FilePath> zPaths = collectPaths( new ArrayList<FilePath>() ); if ( zPaths.size() == 1 ) { return zPaths.get( 0 ).canonical(); } StringBuilder sb = new StringBuilder(); for ( FilePath zPath : zPaths ) { if ( sb.length() != 0 ) { sb.append( ",\n" ); } sb.append( " " ).append( zPath.canonical() ); } return sb.toString(); } } |
Commits for litesoft/trunk/Java/ScarPlus/src/com/esotericsoftware/filesystem/RootedPaths.java
Revision | Author | Commited | Message |
---|---|---|---|
974 Diff | GeorgeS | Mon 25 Aug, 2014 00:35:54 +0000 | Updated to support usage specific artifact repositories |
959 Diff | GeorgeS | Sat 19 Jul, 2014 15:27:50 +0000 | Scar update |
943 Diff | GeorgeS | Tue 03 Jun, 2014 04:25:50 +0000 | Extracting commonfoundation |
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
317 Diff | GeorgeS | Tue 19 Jul, 2011 20:11:58 +0000 | |
313 Diff | GeorgeS | Wed 13 Jul, 2011 20:17:30 +0000 | |
312 | GeorgeS | Tue 12 Jul, 2011 14:07:36 +0000 |