litesoft
@ 947
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 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.GWT.eventbus.client.nonpublic; import org.litesoft.commonfoundation.iterators.*; import org.litesoft.logger.*; import java.util.*; public class LoggingStringSet implements LoggingCollection { private Set mMembers = new HashSet(); private Logger mLogger; private String mLogText; public LoggingStringSet( Logger pLogger, String pLogText ) { mLogger = pLogger; mLogText = pLogText; } public synchronized void add( String[] pNewMembers ) { if ( pNewMembers != null ) { for ( int i = 0; i < pNewMembers.length; i++ ) { add( pNewMembers[i] ); } } } public synchronized void add( Set pNewMembers ) { if ( pNewMembers != null ) { for ( Iterator it = pNewMembers.iterator(); it.hasNext(); ) { add( it.next().toString() ); } } } public synchronized void add( String pNewMember ) { if ( pNewMember != null ) { mLogger.trace.log( "(", mLogText, "):", pNewMember ); mMembers.add( pNewMember ); } } @Override public synchronized void clear() { mMembers.clear(); } @Override public synchronized boolean isEmpty() { return mMembers.isEmpty(); } @Override public synchronized Iterator iterator() { return isEmpty() ? Iterators.empty() : getAndClearSet().iterator(); } public synchronized Set getAndClearSet() { Set rv = mMembers; mMembers = Collections.EMPTY_SET; return rv; } public synchronized String[] getAndClearMembers() { if ( mMembers.isEmpty() ) { return null; } String[] rv = new String[mMembers.size()]; int i = 0; for ( Iterator it = mMembers.iterator(); it.hasNext(); ) { rv[i++] = it.next().toString(); } return rv; } public String toString() { return mLogText + ":" + mMembers; } } |