litesoft
@ 939
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 |
package org.litesoft.aokeyhole.swing.mains.mementobeans.support; import java.io.*; import org.litesoft.commonfoundation.typeutils.*; import java.util.*; import org.litesoft.aokeyhole.persist.*; import org.litesoft.core.simpletypes.*; import org.litesoft.textfiledirectory.*; public class BeanSubSystemState implements BeanMagicStrings { private final String mName; private final String mPackage; private final TextFileDirectory mTextFileDirectory; private List<BeanReader> mBeanReaders = null; // null == unread private int mNextReader = 0; public BeanSubSystemState( String pName, String pPackage, TextFileDirectory pTextFileDirectory ) { mName = pName; mPackage = pPackage; mTextFileDirectory = pTextFileDirectory; } public String getName() { return mName; } public synchronized BeanReader getNextBeanReader() { List<BeanReader> zBeanReaders = getBeanReaders(); return (mNextReader < zBeanReaders.size()) ? zBeanReaders.get( mNextReader++ ) : null; } private List<BeanReader> getBeanReaders() { if ( mBeanReaders == null ) { mBeanReaders = populateOriginalBeans(); } return mBeanReaders; } public SubSystemWriter getSubSystemWriter( Map<String, BeanObjectBuilder> pObjectBuildersByObjectName ) { return new OurSubSystemWriter( pObjectBuildersByObjectName ); } private List<BeanReader> populateOriginalBeans() { List<BeanReader> zBeanReaders = Lists.newArrayList(); for ( String zFile : mTextFileDirectory.getFiles( SOURCE_FILE_EXTENSION ) ) { TextFile zTextFile = mTextFileDirectory.load( zFile ); BeanReader zReader = BeanReader.createFor( zTextFile.getLines() ); if ( zReader != null ) { zBeanReaders.add( zReader ); } } return zBeanReaders; } private class OurSubSystemWriter implements SubSystemWriter { private final Map<String, BeanObjectBuilder> mObjectBuildersByObjectName; private OurSubSystemWriter( Map<String, BeanObjectBuilder> pObjectBuildersByObjectName ) { mObjectBuildersByObjectName = pObjectBuildersByObjectName; } @Override public void write() throws IOException { List<BeanReader> zNewBeanReaders = Lists.newArrayList(); BeanWriter zBeanWriter = new BeanWriter( mTextFileDirectory, mPackage ); for ( BeanReader zBeanReader : getBeanReaders() ) { addTo( zNewBeanReaders, zBeanWriter.persist( zBeanReader, mObjectBuildersByObjectName.remove( zBeanReader.getName() ) ) ); } for ( BeanObjectBuilder zBeanObjectBuilder : mObjectBuildersByObjectName.values() ) { addTo( zNewBeanReaders, zBeanWriter.persist( null, zBeanObjectBuilder ) ); } mBeanReaders = zNewBeanReaders; } private void addTo( List<BeanReader> pNewBeanReaders, BeanReader pBeanReader ) { if ( pBeanReader != null ) { pNewBeanReaders.add( pBeanReader ); } } } } |
Commits for litesoft/trunk/Java/KeyHole/src/org/litesoft/aokeyhole/swing/mains/mementobeans/support/BeanSubSystemState.java
Revision | Author | Commited | Message |
---|---|---|---|
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
845 Diff | GeorgeS | Thu 06 Sep, 2012 19:44:44 +0000 | |
836 Diff | GeorgeS | Wed 05 Sep, 2012 15:01:18 +0000 | |
830 Diff | GeorgeS | Fri 31 Aug, 2012 18:10:19 +0000 | |
828 Diff | GeorgeS | Wed 29 Aug, 2012 00:53:01 +0000 | |
815 Diff | GeorgeS | Sat 18 Aug, 2012 17:54:14 +0000 | |
789 Diff | GeorgeS | Sat 11 Aug, 2012 17:47:31 +0000 | |
788 | GeorgeS | Sun 05 Aug, 2012 22:58:50 +0000 | ! |