litesoft
@ 829
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 |
package org.litesoft.aokeyhole.swing.mains.mementobeans; import java.util.*; import org.litesoft.core.simpletypes.*; import org.litesoft.core.typeutils.*; import org.litesoft.textfiledirectory.*; public class BeanSubSystemState implements BeanMagicStrings { private final String mName; private final String mPackage; private final TextFileDirectory mTextFileDirectory; private Map<String, BeanReader> mOriginalBeansByObjectName = Maps.newHashMap(); private 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() { if ( mBeanReaders == null ) { for ( String zFile : mTextFileDirectory.getFiles( SOURCE_FILE_EXTENSION ) ) { TextFile zTextFile = mTextFileDirectory.load( zFile ); BeanReader zReader = BeanReader.createFor( zTextFile.getLines() ); if (zReader != null) { mOriginalBeansByObjectName.put( zReader.getName(), zReader ); } } mBeanReaders = mOriginalBeansByObjectName.values().toArray( new BeanReader[mOriginalBeansByObjectName.size()] ); } return (mNextReader < mBeanReaders.length) ? mBeanReaders[mNextReader++] : null; } } |