From b13e81e59c37b92c112a4b15219e5282464b8a15 Mon Sep 17 00:00:00 2001
From: Fabian Becker
Date: Thu, 23 Oct 2014 13:53:52 +0200
Subject: [PATCH] Cleanup and documentation update.
refs #2
---
src/eva2/client/package-info.java | 1 -
src/eva2/examples/package-info.java | 3 +
src/eva2/gui/BeanInspector.java | 2 +-
src/eva2/gui/EvATreeNode.java | 2 +-
src/eva2/gui/Main.java | 18 +-
src/eva2/gui/package-info.java | 3 +
src/eva2/json/package-info.java | 4 +
src/eva2/optimization/ModuleServer.java | 4 +
src/eva2/optimization/go/SwingWorker.java | 4 +-
.../optimization/modules/GOModuleAdapter.java | 1 +
.../modules/GenericModuleAdapter.java | 1 -
.../modules/OptimizationParameters.java | 2 +-
src/eva2/optimization/modules/Processor.java | 11 -
src/eva2/optimization/package-info.java | 3 +
.../optimization/population/Population.java | 54 ++---
.../optimization/stat/AbstractStatistics.java | 50 +----
.../optimization/stat/GenericStatistics.java | 20 +-
.../optimization/stat/GraphSelectionEnum.java | 3 +-
.../stat/InterfaceStatistics.java | 4 +-
.../stat/OptimizationJobList.java | 24 +-
.../optimization/stat/StatisticsDummy.java | 8 +-
src/eva2/optimization/strategies/ANPSO.java | 28 ---
.../strategies/DifferentialEvolution.java | 10 +-
src/eva2/package-info.java | 2 +-
.../problems/AbstractOptimizationProblem.java | 22 +-
src/eva2/tools/BasicResourceLoader.java | 20 +-
src/eva2/tools/CubicSpline.java | 210 ------------------
src/eva2/tools/JarResources.java | 46 ++--
src/eva2/tools/ReflectPackage.java | 7 +-
src/eva2/tools/SelectedTag.java | 3 +-
src/eva2/tools/SerializedObject.java | 9 +-
src/eva2/tools/StringTools.java | 10 +-
src/eva2/tools/ToolBox.java | 36 ++-
src/eva2/tools/chart2d/DArea.java | 9 +-
src/eva2/tools/chart2d/DArray.java | 2 +-
src/eva2/tools/chart2d/DComponent.java | 2 +-
src/eva2/tools/chart2d/DIntDoubleMap.java | 16 +-
src/eva2/tools/chart2d/DRectangle.java | 2 +-
src/eva2/tools/chart2d/ScaledBorder.java | 14 +-
src/eva2/tools/math/Jama/util/Maths.java | 7 +-
src/eva2/tools/matlab/JMatLink.java | 11 +-
src/eva2/{client => util}/ClassPreloader.java | 4 +-
src/eva2/{client => util}/EvAComAdapter.java | 2 +-
src/eva2/util/package-info.java | 3 +
44 files changed, 175 insertions(+), 522 deletions(-)
delete mode 100644 src/eva2/client/package-info.java
create mode 100644 src/eva2/json/package-info.java
delete mode 100644 src/eva2/tools/CubicSpline.java
rename src/eva2/{client => util}/ClassPreloader.java (95%)
rename src/eva2/{client => util}/EvAComAdapter.java (98%)
diff --git a/src/eva2/client/package-info.java b/src/eva2/client/package-info.java
deleted file mode 100644
index 241cf986..00000000
--- a/src/eva2/client/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package eva2.client;
\ No newline at end of file
diff --git a/src/eva2/examples/package-info.java b/src/eva2/examples/package-info.java
index 6746fb8d..4d616b24 100644
--- a/src/eva2/examples/package-info.java
+++ b/src/eva2/examples/package-info.java
@@ -1 +1,4 @@
+/**
+ * Contains example implementations for custom Terminators and Optimizations.
+ */
package eva2.examples;
\ No newline at end of file
diff --git a/src/eva2/gui/BeanInspector.java b/src/eva2/gui/BeanInspector.java
index 932de012..3a6c920c 100644
--- a/src/eva2/gui/BeanInspector.java
+++ b/src/eva2/gui/BeanInspector.java
@@ -511,7 +511,7 @@ public class BeanInspector {
* For a primitive type, return the boxed referenced type. Return null for
* any non-primitive type.
*
- * @param clz1
+ * @param cls
* @return
*/
public static Class getBoxedType(Class cls) {
diff --git a/src/eva2/gui/EvATreeNode.java b/src/eva2/gui/EvATreeNode.java
index 39d00d6a..6dee4ac2 100644
--- a/src/eva2/gui/EvATreeNode.java
+++ b/src/eva2/gui/EvATreeNode.java
@@ -11,7 +11,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
*
* @author mkron
* @see PropertySheetPanel
- * @see GOParameters
+ * @see eva2.optimization.modules.OptimizationParameters
*/
public class EvATreeNode extends DefaultMutableTreeNode {
private String[] childrenNames = null;
diff --git a/src/eva2/gui/Main.java b/src/eva2/gui/Main.java
index 25eb17e5..9892a19b 100644
--- a/src/eva2/gui/Main.java
+++ b/src/eva2/gui/Main.java
@@ -1,8 +1,8 @@
package eva2.gui;
import eva2.EvAInfo;
-import eva2.client.ClassPreloader;
-import eva2.client.EvAComAdapter;
+import eva2.util.ClassPreloader;
+import eva2.util.EvAComAdapter;
import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.modules.AbstractModuleAdapter;
@@ -90,7 +90,7 @@ public class Main extends JFrame implements OptimizationStateListener {
/**
* Constructor of GUI of EvA2. Works as client for the EvA2 server. Note
- * that the Main initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
+ * that the Main initialized multi-threaded for efficiency. Use {@link #awaitClientInitialized()} }
* to await full initialization if necessary.
*/
public Main(final String hostName) {
@@ -100,7 +100,7 @@ public class Main extends JFrame implements OptimizationStateListener {
/**
* A constructor. Splash screen is optional, Gui is activated, no parent
* window. Note that the Main initialized multi-threaded for
- * efficiency. Use {@link #awaitGuiInitialized()} to await full
+ * efficiency. Use {@link #awaitClientInitialized()} to await full
* initialization if necessary.
*
* @param hostName
@@ -114,7 +114,7 @@ public class Main extends JFrame implements OptimizationStateListener {
/**
* A constructor with optional spash screen. Note that the Main is
- * initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
+ * initialized multi-threaded for efficiency. Use {@link #awaitClientInitialized()}
* to await full initialization if necessary.
*
* @param hostName
@@ -128,7 +128,7 @@ public class Main extends JFrame implements OptimizationStateListener {
/**
* A constructor with optional splash screen. Note that the Main
- * initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
+ * initialized multi-threaded for efficiency. Use {@link #awaitClientInitialized()}
* to await full initialization if necessary.
*
* @param hostName
@@ -144,11 +144,11 @@ public class Main extends JFrame implements OptimizationStateListener {
/**
* A constructor with optional splash screen. Note that the Main
- * initialized multi-threaded for efficiency. Use {@link #awaitGuiInitialized()}
+ * initialized multi-threaded for efficiency. Use {@link #awaitClientInitialized()}
* to await full initialization if necessary.
*
* @param hostName
- * @param paramsFile
+ * @param optimizationParameters
* @param autorun
* @param noSplash
* @param noGui
@@ -179,7 +179,7 @@ public class Main extends JFrame implements OptimizationStateListener {
* from a file (paramsFile) or given directly as a java instance. Both may
* be null to start with standard parameters. If both are non null, the java
* instance has the higher priority. Note that the Main initialized
- * multi-threaded for efficiency. Use {@link #awaitGuiInitialized()} to
+ * multi-threaded for efficiency. Use {@link #awaitClientInitialized()} to
* await full initialization if necessary.
*
* @param hostName
diff --git a/src/eva2/gui/package-info.java b/src/eva2/gui/package-info.java
index c6db757a..061c85cc 100644
--- a/src/eva2/gui/package-info.java
+++ b/src/eva2/gui/package-info.java
@@ -1 +1,4 @@
+/**
+ * Base package for the EvA2 GUI.
+ */
package eva2.gui;
\ No newline at end of file
diff --git a/src/eva2/json/package-info.java b/src/eva2/json/package-info.java
new file mode 100644
index 00000000..c0261a75
--- /dev/null
+++ b/src/eva2/json/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * JSON package for serializing and deserializing optimization configurations.
+ */
+package eva2.json;
\ No newline at end of file
diff --git a/src/eva2/optimization/ModuleServer.java b/src/eva2/optimization/ModuleServer.java
index 3aa6e25f..de52fca7 100644
--- a/src/eva2/optimization/ModuleServer.java
+++ b/src/eva2/optimization/ModuleServer.java
@@ -26,6 +26,7 @@ public final class ModuleServer {
/**
*
+ * @param EvAProps
*/
public ModuleServer(Properties EvAProps) {
if (instanceCounter > 0) {
@@ -93,6 +94,9 @@ public final class ModuleServer {
* module classes; if necessary through a remote proxy. Try to load a given
* parameter file in case its a GOModuleAdapter.
*
+ * @param selectedModuleName
+ * @param optimizationParameters
+ * @param noGuiLogFile
* @return the loaded module adapter instance
*/
public ModuleAdapter createModuleAdapter(String selectedModuleName, InterfaceOptimizationParameters optimizationParameters, String noGuiLogFile) {
diff --git a/src/eva2/optimization/go/SwingWorker.java b/src/eva2/optimization/go/SwingWorker.java
index 920d893a..bad8bf55 100644
--- a/src/eva2/optimization/go/SwingWorker.java
+++ b/src/eva2/optimization/go/SwingWorker.java
@@ -7,11 +7,11 @@ import javax.swing.*;
* SwingWorker 3), an abstract class that you subclass to
* perform GUI-related work in a dedicated thread. For
* instructions on using this class, see:
- *
+ *
* http://java.sun.com/products/jfc/tsc/articles/threads/threads2.html
* or
* http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
- *
+ *
* Note that the API changed slightly in the 3rd version:
* You must now invoke start() on the SwingWorker after
* creating it.
diff --git a/src/eva2/optimization/modules/GOModuleAdapter.java b/src/eva2/optimization/modules/GOModuleAdapter.java
index 289a7ea2..7f0b785d 100644
--- a/src/eva2/optimization/modules/GOModuleAdapter.java
+++ b/src/eva2/optimization/modules/GOModuleAdapter.java
@@ -8,6 +8,7 @@ import java.io.Serializable;
/**
* Starts a statistics GUI and the GOProcessor thread.
*/
+@SuppressWarnings("unused")
public class GOModuleAdapter extends GenericModuleAdapter implements ModuleAdapter, Serializable {
private static final String moduleName = "Genetic_Optimization";
diff --git a/src/eva2/optimization/modules/GenericModuleAdapter.java b/src/eva2/optimization/modules/GenericModuleAdapter.java
index 9ab25960..bd93e398 100644
--- a/src/eva2/optimization/modules/GenericModuleAdapter.java
+++ b/src/eva2/optimization/modules/GenericModuleAdapter.java
@@ -56,7 +56,6 @@ public class GenericModuleAdapter extends AbstractModuleAdapter implements Seria
*
* @param adapterName The AdapterName
* @param helperFName name of a html help file name
- * @param Client The client to serve
* @param params a parameter set describing the optimizer module
* @param optimizerExpert set to true if setting the optimizer is an expert option being hidden from the gui
*/
diff --git a/src/eva2/optimization/modules/OptimizationParameters.java b/src/eva2/optimization/modules/OptimizationParameters.java
index 09b9927a..1fc6ccb1 100644
--- a/src/eva2/optimization/modules/OptimizationParameters.java
+++ b/src/eva2/optimization/modules/OptimizationParameters.java
@@ -20,7 +20,7 @@ import java.util.logging.Level;
/**
* OptimizationParameters for configuration of an
* optimization run.
- *
+ *
* This class is used to generate the default GUI
* configuration panel for optimizations.
*/
diff --git a/src/eva2/optimization/modules/Processor.java b/src/eva2/optimization/modules/Processor.java
index 23a15f61..6a6d54e1 100644
--- a/src/eva2/optimization/modules/Processor.java
+++ b/src/eva2/optimization/modules/Processor.java
@@ -40,8 +40,6 @@ import java.util.logging.Logger;
* interface, it is applied to the instance that returned it directly. For
* arrays of objects each array entry is again handled by checking for
* getParamControl, thus recursive controllable structures are possible.
- *
- * @author mkron
*/
public class Processor extends Thread implements InterfaceProcessor, InterfacePopulationChangedEventListener {
@@ -227,7 +225,6 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
optimizationParameters.getOptimizer().addPopulationChangedEventListener(this);
runCounter = 0;
- String popLog = null; //"populationLog.txt";
while (isOptimizationRunning() && (runCounter < statistics.getStatisticsParameter().getMultiRuns())) {
LOGGER.info(String.format("Starting Optimization %d/%d", runCounter + 1, statistics.getStatisticsParameter().getMultiRuns()));
@@ -244,19 +241,11 @@ public class Processor extends Thread implements InterfaceProcessor, InterfacePo
if (optimizationStateListener != null) {
optimizationStateListener.updateProgress(getStatusPercent(optimizationParameters.getOptimizer().getPopulation(), runCounter, statistics.getStatisticsParameter().getMultiRuns()), null);
}
- if (popLog != null) {
- EVAHELP.clearLog(popLog);
- }
do { // main loop
maybeUpdateParamCtrl(optimizationParameters);
this.optimizationParameters.getOptimizer().optimize();
- // registerPopulationStateChanged *SHOULD* be fired by the optimizer or resp. the population
- // as we are event listener
- if (popLog != null) {
- EVAHELP.logString(this.optimizationParameters.getOptimizer().getPopulation().getIndyList(), popLog);
- }
}
while (isOptimizationRunning() && !this.optimizationParameters.getTerminator().isTerminated(this.optimizationParameters.getOptimizer().getAllSolutions()));
diff --git a/src/eva2/optimization/package-info.java b/src/eva2/optimization/package-info.java
index 7bd1b7a9..7794a259 100644
--- a/src/eva2/optimization/package-info.java
+++ b/src/eva2/optimization/package-info.java
@@ -1 +1,4 @@
+/**
+ *
+ */
package eva2.optimization;
\ No newline at end of file
diff --git a/src/eva2/optimization/population/Population.java b/src/eva2/optimization/population/Population.java
index 77048e42..ac55d766 100644
--- a/src/eva2/optimization/population/Population.java
+++ b/src/eva2/optimization/population/Population.java
@@ -955,7 +955,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* population. If the population is empty, -1 is returned.
*
* @return The index of the best individual.
- * @see getIndexOfBestOrWorstIndividual()
+ * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator)
*/
public int getIndexOfBestIndividualPrefFeasible() {
if (size() < 1) {
@@ -969,7 +969,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* the population.
*
* @return The index of the worst individual.
- * @see getIndexOfBestOrWorstIndividual()
+ * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator)
*/
public int getIndexOfWorstIndividualNoConstr() {
return getIndexOfBestOrWorstIndy(false, false, -1);
@@ -981,7 +981,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* fitIndex < 0). If the population is empty, -1 is returned.
*
* @return The index of the best individual.
- * @see getIndexOfBestOrWorstIndividual()
+ * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator)
*/
public int getIndexOfBestIndividualPrefFeasible(int fitIndex) {
if (size() < 1) {
@@ -996,7 +996,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* fitIndex < 0).
*
* @return The index of the best individual.
- * @see getIndexOfBestOrWorstIndividual()
+ * @see #getIndexOfBestOrWorstIndividual(boolean, java.util.Comparator)
*/
public int getIndexOfWorstIndividualNoConstr(int fitIndex) {
return getIndexOfBestOrWorstIndy(false, false, fitIndex);
@@ -1257,7 +1257,6 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* instance.
*
* @param n
- * @param l
*/
public Population toTail(int n) {
Population retPop = new Population(n);
@@ -1310,8 +1309,7 @@ public class Population extends ArrayList implements PopulationInterface, Clonea
* the population has not been modified. The returned array must not be
* altered!
*
- * @param fitIndex the fitness criterion to be used or -1 for pareto
- * dominance
+ * @param comp The comparator
* @return
*/
public ArrayList getSorted(Comparator
* DComponent is abstract because the paint method has to be overridden
*/
public abstract class DComponent implements DElement {
diff --git a/src/eva2/tools/chart2d/DIntDoubleMap.java b/src/eva2/tools/chart2d/DIntDoubleMap.java
index f6218cb5..b74968e7 100644
--- a/src/eva2/tools/chart2d/DIntDoubleMap.java
+++ b/src/eva2/tools/chart2d/DIntDoubleMap.java
@@ -16,7 +16,7 @@ public interface DIntDoubleMap {
*
* @param source the preimage of the image
* @param image the new image of the source value
- * @return true<\code> when the minmal or the maximal image value
+ * @return true when the minimal or the maximal image value
* has been changed by this method call, else it returns
* false @see #getMinImageValue(), #getMaxImageValue()
*/
@@ -34,7 +34,7 @@ public interface DIntDoubleMap {
* the image of the highest source value + 1 should be the given image value
*
* @param image the new image value
- * @return true<\code> when the minmal or the maximal image value
+ * @return true when the minimal or the maximal image value
* has been changed by this method call, else it returns
* false @see #getMinImageValue(), #getMaxImageValue()
*/
@@ -51,23 +51,23 @@ public interface DIntDoubleMap {
* returns the maximal image value
*
* @return the maximal image value
- * @throw an IllegalArgumentException when it has no image values
+ * @throws IllegalArgumentException when it has no image values
*/
double getMaxImageValue();
/**
* returns the minimal image value
*
- * @return the minmal image value
- * @throw an IllegalArgumentException when it has no image values
+ * @return the minimal image value
+ * @throws IllegalArgumentException when it has no image values
*/
double getMinImageValue();
/**
* returns the minimal image value
*
- * @return the minmal image value
- * @throw an IllegalArgumentException when it has no image values
+ * @return the minimal image value
+ * @throws IllegalArgumentException when it has no image values
*/
double getMinPositiveImageValue();
@@ -76,7 +76,7 @@ public interface DIntDoubleMap {
* when at least one of them has changed
*
* @return true when either the maximal image value or the
- * minmal image value has changed
+ * minimal image value has changed
*/
boolean restore();
diff --git a/src/eva2/tools/chart2d/DRectangle.java b/src/eva2/tools/chart2d/DRectangle.java
index dd738e2f..f3c9418f 100644
--- a/src/eva2/tools/chart2d/DRectangle.java
+++ b/src/eva2/tools/chart2d/DRectangle.java
@@ -202,7 +202,7 @@ public class DRectangle extends DComponent {
/**
* method resizes the rectangle to insert p
*
- * @param the dPoint p to insert
+ * @param p the dPoint p to insert
* @return true when the size of the rectangle changed
*/
public boolean insert(DPoint p) {
diff --git a/src/eva2/tools/chart2d/ScaledBorder.java b/src/eva2/tools/chart2d/ScaledBorder.java
index cdab04e9..40d057d6 100644
--- a/src/eva2/tools/chart2d/ScaledBorder.java
+++ b/src/eva2/tools/chart2d/ScaledBorder.java
@@ -144,8 +144,8 @@ public class ScaledBorder implements Border {
}
/**
- * constructor creates a new ScaledBorder
- * surrounded by the specified Border
+ * constructor creates a new ScaledBorder
+ * surrounded by the specified Border
*/
public ScaledBorder(Border outer) {
outerBorder = outer;
@@ -171,9 +171,8 @@ public class ScaledBorder implements Border {
/**
* method sets the differences between source x-values of the displayed values
*
- * @see setAutoScaleX().
- * If scale functions are used there might be a difference between the shown values
- * and the source values
+ * If scale functions are used there might be a difference between the shown values
+ * and the source values
*/
public void setSrcdX(double dX) {
autoScaleX = false;
@@ -183,9 +182,8 @@ public class ScaledBorder implements Border {
/**
* method sets the differences between source y-values of the displayed values
*
- * @see setAutoScaleY().
- * If scale functions are used there might be a difference between the shown values
- * and the source values
+ * If scale functions are used there might be a difference between the shown values
+ * and the source values
*/
public void setSrcdY(double dY) {
autoScaleY = false;
diff --git a/src/eva2/tools/math/Jama/util/Maths.java b/src/eva2/tools/math/Jama/util/Maths.java
index f585f5cf..d337f4d2 100644
--- a/src/eva2/tools/math/Jama/util/Maths.java
+++ b/src/eva2/tools/math/Jama/util/Maths.java
@@ -3,9 +3,12 @@ package eva2.tools.math.Jama.util;
public class Maths {
/**
- * sqrt(a^2 + b^2) without under/overflow. *
+ * sqrt(a^2 + b^2) without under/overflow.
+ *
+ * @param a
+ * @param b
+ * @return
*/
-
public static double hypot(double a, double b) {
double r;
double aa = Math.abs(a);
diff --git a/src/eva2/tools/matlab/JMatLink.java b/src/eva2/tools/matlab/JMatLink.java
index ccc06ac0..c0ddc1fb 100644
--- a/src/eva2/tools/matlab/JMatLink.java
+++ b/src/eva2/tools/matlab/JMatLink.java
@@ -20,11 +20,11 @@
* 13.08.1999 thread implementation due to ActiveX thread problem (0.05) *
- * 15.08.1999 intruduced 2 locking mechanisms to lock the engine and *
+ * 15.08.1999 introduced 2 locking mechanisms to lock the engine and *
* wait for data to be return to caller. (0.06) *
- * 16.08.1999 wait for all engine calls to return savely (0.06a)*
+ * 16.08.1999 wait for all engine calls to return safely (0.06a)*
* 29.08.1999 made all engine routines "synchronized" (0.07) *
@@ -113,15 +113,10 @@
package eva2.tools.matlab;
// **** Thread programming. Notify and start and stop ****
-
// Look at
-
// file:///e%7C/jdk1.2/docs/guide/misc/threadPrimitiveDeprecation.html
-
-// on how to suspend, start, stop, interrupt a thread savely in JDK1.2.x
-
+// on how to suspend, start, stop, interrupt a thread safely in JDK1.2.x
// The problem is ActiveX: one only can make calls to the engine library
-
// (especially engEvalString) from ONE single thread.
import java.io.UnsupportedEncodingException;
diff --git a/src/eva2/client/ClassPreloader.java b/src/eva2/util/ClassPreloader.java
similarity index 95%
rename from src/eva2/client/ClassPreloader.java
rename to src/eva2/util/ClassPreloader.java
index fc67d221..ea744506 100644
--- a/src/eva2/client/ClassPreloader.java
+++ b/src/eva2/util/ClassPreloader.java
@@ -1,4 +1,4 @@
-package eva2.client;
+package eva2.util;
import eva2.gui.editor.GenericObjectEditor;
@@ -6,8 +6,6 @@ import eva2.gui.editor.GenericObjectEditor;
* This Runnable just requests a number of classes as does the
* GenericObjectEditor so that they are loaded into the system cache. It can be
* done at startup time and accelerates later reloading.
- *
- * @author mkron
*/
public class ClassPreloader implements Runnable {
diff --git a/src/eva2/client/EvAComAdapter.java b/src/eva2/util/EvAComAdapter.java
similarity index 98%
rename from src/eva2/client/EvAComAdapter.java
rename to src/eva2/util/EvAComAdapter.java
index d78c72b3..b884b6f1 100644
--- a/src/eva2/client/EvAComAdapter.java
+++ b/src/eva2/util/EvAComAdapter.java
@@ -1,4 +1,4 @@
-package eva2.client;
+package eva2.util;
import eva2.gui.LoggingPanel;
diff --git a/src/eva2/util/package-info.java b/src/eva2/util/package-info.java
index f645a25e..8fe78cd5 100644
--- a/src/eva2/util/package-info.java
+++ b/src/eva2/util/package-info.java
@@ -1 +1,4 @@
+/**
+ * Utility classes used in EvA
+ */
package eva2.util;
\ No newline at end of file