litesoft
@ HEAD
litesoft / trunk / Java / core / Server / src / org / litesoft / textfiledirectory / TextFileDirectoryMemory.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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
package org.litesoft.textfiledirectory; import org.litesoft.commonfoundation.annotations.*; import org.litesoft.commonfoundation.base.*; import org.litesoft.commonfoundation.typeutils.*; import org.litesoft.core.simpletypes.*; import java.util.*; public class TextFileDirectoryMemory extends AbstractTextFileDirectory { public static final String DEFAULT_DIRECTORY = "TheOne"; private final Map<String, TextFile> mFiles = new HashMap<String, TextFile>(); private final String mDirectory; private boolean mExists; public TextFileDirectoryMemory( String pDirectory, boolean pExists ) { mDirectory = Confirm.significant( "Directory", pDirectory ); mExists = pExists; } public TextFileDirectoryMemory( String pDirectory ) { this( pDirectory, true ); } public TextFileDirectoryMemory( boolean pExists ) { this( DEFAULT_DIRECTORY, pExists ); } public TextFileDirectoryMemory() { this( true ); } @Override public String getDirectoryPath() { return mDirectory; } @Override public boolean exists() { return mExists; } @Override public String[] getFiles( String... pExtensions ) { String[] zExtensions = preprocessExtensions( pExtensions ); if ( mFiles.isEmpty() ) { return Strings.EMPTY_ARRAY; } if ( zExtensions.length == 0 ) { return mFiles.keySet().toArray( new String[mFiles.size()] ); } List<String> zFound = new ArrayList<String>( mFiles.size() ); for ( String zFileName : mFiles.keySet() ) { if ( endsWithOneOf( zFileName, zExtensions ) ) { zFound.add( zFileName ); } } Collections.sort( zFound ); return zFound.toArray( new String[zFound.size()] ); } private boolean endsWithOneOf( String pFileName, String[] pExtensions ) { for ( String zExtension : pExtensions ) { if ( pFileName.endsWith( zExtension ) ) { return true; } } return false; } @Override public TextFile load( @NotNull String pFileName ) throws FileDoesNotExists { return mFiles.get( assertExists( Confirm.significant( "FileName", pFileName ) ) ); } @Override public void create( @NotNull TextFile pFile ) throws FileAlreadyExists { write( assertNotExist( getFile( pFile ) ), pFile ); } @Override public void update( @NotNull TextFile pFile ) throws FileDoesNotExists { write( assertExists( getFile( pFile ) ), pFile ); } @Override public void delete( @NotNull TextFile pFile ) throws FileDoesNotExists { LLdelete( getFile( pFile ) ); } @Override public void delete( @NotNull String pFileName ) throws FileDoesNotExists { LLdelete( Confirm.significant( "FileName", pFileName ) ); } private void write( String pFileName, TextFile pTextFile ) { mFiles.put( pFileName, pTextFile ); mExists = true; } private void LLdelete( String pFileName ) { mFiles.remove( assertExists( pFileName ) ); mExists = true; } private String assertExists( String pFileName ) { assertExists( mFiles.containsKey( pFileName ), pFileName ); return pFileName; } private String assertNotExist( String pFileName ) { assertNotExists( mFiles.containsKey( pFileName ), pFileName ); return pFileName; } private String getFile( TextFile pFile ) { return Confirm.isNotNull( "File", pFile ).getFileName(); } } |
Commits for litesoft/trunk/Java/core/Server/src/org/litesoft/textfiledirectory/TextFileDirectoryMemory.java
Revision | Author | Commited | Message |
---|---|---|---|
950 Diff | GeorgeS | Thu 19 Jun, 2014 17:57:04 +0000 | New Lines |
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
917 Diff | GeorgeS | Sun 08 Dec, 2013 20:49:56 +0000 | 1.7 prep & VersionedStaticContentFilter upgrade to new “/ver” model! |
836 Diff | GeorgeS | Wed 05 Sep, 2012 15:01:18 +0000 | |
821 Diff | GeorgeS | Sun 19 Aug, 2012 00:08:41 +0000 | |
804 Diff | GeorgeS | Wed 15 Aug, 2012 12:48:51 +0000 | |
800 Diff | GeorgeS | Wed 15 Aug, 2012 03:33:38 +0000 | |
791 Diff | GeorgeS | Sun 12 Aug, 2012 15:22:58 +0000 | ! |
789 | GeorgeS | Sat 11 Aug, 2012 17:47:31 +0000 |