From: <pat...@us...> - 2010-01-13 16:55:41
|
Revision: 1017 http://cishell.svn.sourceforge.net/cishell/?rev=1017&view=rev Author: pataphil Date: 2010-01-13 16:55:34 +0000 (Wed, 13 Jan 2010) Log Message: ----------- * Added StringUtilities.allAreEmptyOrWhiteSpace (which wraps StringUtilities.isEmptyOrWhiteSpace). * Added org.cishell.utilities.osgi.logging.LogMessageHandler. Modified Paths: -------------- trunk/core/org.cishell.utilities/.classpath trunk/core/org.cishell.utilities/.settings/org.eclipse.jdt.core.prefs trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java Added Paths: ----------- trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/ trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/logging/ trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/logging/LogMessageHandler.java Modified: trunk/core/org.cishell.utilities/.classpath =================================================================== --- trunk/core/org.cishell.utilities/.classpath 2010-01-07 22:49:43 UTC (rev 1016) +++ trunk/core/org.cishell.utilities/.classpath 2010-01-13 16:55:34 UTC (rev 1017) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="src" path="src"/> <classpathentry kind="output" path="bin"/> Modified: trunk/core/org.cishell.utilities/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/core/org.cishell.utilities/.settings/org.eclipse.jdt.core.prefs 2010-01-07 22:49:43 UTC (rev 1016) +++ trunk/core/org.cishell.utilities/.settings/org.eclipse.jdt.core.prefs 2010-01-13 16:55:34 UTC (rev 1017) @@ -1,12 +1,12 @@ -#Tue Oct 13 13:58:27 EDT 2009 +#Wed Jan 13 11:39:50 EST 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.4 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning -org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning -org.eclipse.jdt.core.compiler.source=1.3 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 Modified: trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF =================================================================== --- trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF 2010-01-07 22:49:43 UTC (rev 1016) +++ trunk/core/org.cishell.utilities/META-INF/MANIFEST.MF 2010-01-13 16:55:34 UTC (rev 1017) @@ -3,13 +3,14 @@ Bundle-Name: Utilities Plug-in Bundle-SymbolicName: org.cishell.utilities Bundle-Version: 1.0.0 -Bundle-RequiredExecutionEnvironment: J2SE-1.4 +Bundle-RequiredExecutionEnvironment: J2SE-1.5 Import-Package: org.cishell.framework;version="1.0.0", org.cishell.framework.algorithm;version="1.0.0", org.cishell.framework.data, org.cishell.reference.service.metatype, org.cishell.service.database, org.osgi.framework;version="1.4.0", + org.osgi.service.log;version="1.3.0", org.osgi.service.metatype;version="1.1.0", prefuse, prefuse.data, @@ -21,4 +22,5 @@ Export-Package: org.cishell.utilities, org.cishell.utilities.mutateParameter, org.cishell.utilities.mutateParameter.defaultvalue, - org.cishell.utilities.mutateParameter.dropdown + org.cishell.utilities.mutateParameter.dropdown, + org.cishell.utilities.osgi.logging Modified: trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java 2010-01-07 22:49:43 UTC (rev 1016) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/StringUtilities.java 2010-01-13 16:55:34 UTC (rev 1017) @@ -98,6 +98,16 @@ return (trimmed.length() == 0); } + + public static boolean allAreEmptyOrWhiteSpace(String... tests) { + for (String test : tests) { + if (!isEmptyOrWhiteSpace(test)) { + return false; + } + } + + return true; + } public static int countOccurrencesOfChar( CharSequence characters, char target) { Added: trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/logging/LogMessageHandler.java =================================================================== --- trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/logging/LogMessageHandler.java (rev 0) +++ trunk/core/org.cishell.utilities/src/org/cishell/utilities/osgi/logging/LogMessageHandler.java 2010-01-13 16:55:34 UTC (rev 1017) @@ -0,0 +1,101 @@ +package org.cishell.utilities.osgi.logging; + +import java.util.HashMap; +import java.util.Map; + +import org.osgi.service.log.LogService; + +// TODO: Get reviewed. +// TODO: Make 1.4 compatible and move to cishell utilities? +public class LogMessageHandler { + private LogService logger; + private Map<MessageTypeIndicator, MessageType> messageTypes = + new HashMap<MessageTypeIndicator, MessageType>(); + + public LogMessageHandler(LogService logger) { + this.logger = logger; + } + + /** + * If typeIndicator is already an added message type, its count will be + * reset and maximum count overridden. + */ + public MessageTypeIndicator addMessageType( + String description, int maximumCount) { + MessageTypeIndicator typeIndicator = new MessageTypeIndicator(); + this.messageTypes.put( + typeIndicator, new MessageType(description, maximumCount)); + + return typeIndicator; + } + + /** + * logMessage will always be logged if typeIndicator has not been added + * prior to calling this. + */ + public void logMessage( + MessageTypeIndicator typeIndicator, + int logLevel, + String logMessage) { + MessageType messageType = this.messageTypes.get(typeIndicator); + + if (messageType != null) { + if (messageType.messageLogged()) { + this.logger.log(logLevel, logMessage); + } + } else { + this.logger.log(logLevel, logMessage); + } + } + + public void printOverloadedMessageTypes(int logLevel) { + for (MessageType messageType : this.messageTypes.values()) { + if (messageType.wasOverloaded()) { + this.logger.log(logLevel, messageType.toString()); + } + } + } + + public class MessageTypeIndicator {} + + private class MessageType { + private String description; + private int maximumCount; + private int foundCount = 0; + private int overLoadedCount = 0; + + public MessageType(String description, int maximumCount) { + this.description = description; + this.maximumCount = maximumCount; + } + + public boolean hasAnyLeft() { + return this.foundCount != this.maximumCount; + } + + public boolean wasOverloaded() { + return this.overLoadedCount > 0; + } + + public boolean messageLogged() { + if (hasAnyLeft()) { + this.foundCount++; + + return true; + } else { + this.overLoadedCount++; + + return false; + } + } + + public String toString() { + return + "Found " + + this.overLoadedCount + + " more " + + this.description + + "."; + } + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |