diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7276cc1..625e108 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -57,8 +57,17 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 + # - name: Autobuild + # uses: github/codeql-action/autobuild@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: 'temurin' + + - name: Build with Maven + run: mvn clean install # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun diff --git a/.github/workflows/deploy-to-github.yml b/.github/workflows/deploy-to-github.yml new file mode 100644 index 0000000..842428c --- /dev/null +++ b/.github/workflows/deploy-to-github.yml @@ -0,0 +1,38 @@ +name: Deploy to GitHub Packages + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: 'temurin' + + - name: Configure Maven settings + run: | + mkdir -p ~/.m2 + echo " + + + github + ${{ github.actor }} + ${{ secrets.GITHUB_TOKEN }} + + + " > ~/.m2/settings.xml + + - name: Build and deploy + run: mvn deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/maven-ci.yml b/.github/workflows/maven-ci.yml index 95060cc..9bb5780 100644 --- a/.github/workflows/maven-ci.yml +++ b/.github/workflows/maven-ci.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '8', '11', '17' ] + java: [ '17', '21' ] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/maven-publish-on-push.yml b/.github/workflows/maven-publish-on-push.yml index 07a7885..147df51 100644 --- a/.github/workflows/maven-publish-on-push.yml +++ b/.github/workflows/maven-publish-on-push.yml @@ -19,10 +19,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK 1.8 for Github deployment + - name: Set up JDK 17 for Github deployment uses: actions/setup-java@v4 with: - java-version: 8.0.302+8 + java-version: 17 distribution: 'temurin' server-id: github # Value of the distributionManagement/repository/id field of the pom.xml settings-path: ${{ github.workspace }} # location for the settings.xml file @@ -58,10 +58,10 @@ jobs: GITHUB_TOKEN: ${{ github.token }} - - name: Set up JDK 1.8 for NERZ-Snapshot-Deployment + - name: Set up JDK 17 for NERZ-Snapshot-Deployment uses: actions/setup-java@v4 with: - java-version: 8.0.302+8 + java-version: 17 distribution: 'temurin' server-id: nerz-snapshots server-username: MAVEN_USERNAME @@ -76,10 +76,10 @@ jobs: MAVEN_USERNAME: ${{ secrets.NERZ_USERNAME }} MAVEN_PASSWORD: ${{ secrets.NERZ_TOKEN }} - - name: Set up JDK 1.8 for NERZ-Release-Deployment + - name: Set up JDK 17 for NERZ-Release-Deployment uses: actions/setup-java@v4 with: - java-version: 8.0.302+8 + java-version: 17 distribution: 'temurin' server-id: nerz-releases server-username: MAVEN_USERNAME @@ -95,8 +95,6 @@ jobs: MAVEN_PASSWORD: ${{ secrets.NERZ_TOKEN }} - - diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 011ced1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: java -jdk: - - openjdk8 -install: true -script: mvn install -B -V diff --git a/README.md b/README.md index d17d807..d08203c 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,11 @@ # com.bitctrl Allgemeine Bibliothek für BitCtrl-Projekte +## Version 3.0.0 + - Update auf Java 17 + - javax Namespace durch jakarta ersetzt + - DAO & Criteria Klassen deprecated + ## Version 2.1.0 - Publikation auf dem NERZ-Maven-Repository diff --git a/pom.xml b/pom.xml index a83b93e..9408c24 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.bitctrl com.bitctrl - 2.1.1-SNAPSHOT + 3.0.0-SNAPSHOT Allgemeine BitCtrl-Bibliothek http://bitctrl.github.io/${project.artifactId}/ @@ -14,8 +14,8 @@ UTF-8 UTF-8 - 1.8 - 1.8 + 17 + 17 @@ -36,7 +36,8 @@ scm:git:https://github.com/bitctrl/${project.artifactId}.git - scm:git:https://github.com/bitctrl/${project.artifactId}.git + + scm:git:https://github.com/bitctrl/${project.artifactId}.git https://github.com/bitctrl/${project.artifactId} @@ -63,12 +64,14 @@ bitctrl.nexus BitCtrl Nexus Releases Repository - http://bitctrlbuildserver:8081/nexus/content/repositories/releases/ + + http://nexus.ad.bitctrl.de/nexus/content/repositories/releases/ bitctrl.nexus.snapshots BitCtrl Nexus Snapshots Repository - http://bitctrlbuildserver:8081/nexus/content/repositories/snapshots/ + + http://nexus.ad.bitctrl.de/nexus/content/repositories/snapshots/ @@ -111,7 +114,8 @@ nerz-snapshots NERZ Snapshots - https://repo.nerz-ev.de/repository/nerz-maven-snapshots/ + + https://repo.nerz-ev.de/repository/nerz-maven-snapshots/ @@ -130,16 +134,11 @@ 1.16.1 - javax.xml.bind - jaxb-api - 2.3.1 + jakarta.xml.bind + jakarta.xml.bind-api + 4.0.2 - - org.glassfish.jaxb - jaxb-runtime - 2.3.5 - - + @@ -147,7 +146,7 @@ org.apache.maven.plugins maven-failsafe-plugin - 3.4.0 + 3.5.0 @@ -170,7 +169,8 @@ - ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF @@ -192,7 +192,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.8.0 + 3.10.0 javadoc @@ -206,7 +206,7 @@ org.apache.maven.plugins maven-site-plugin - 3.12.1 + 3.20.0 de @@ -214,7 +214,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.4.0 + 3.5.0 src/main/config/checkstyle.xml src/main/config/java.header @@ -229,20 +229,13 @@ - org.codehaus.mojo - findbugs-maven-plugin - 3.0.5 + com.github.spotbugs + spotbugs-maven-plugin + 4.8.6.4 - High true + false - - - - check - - - biz.aQute.bnd @@ -264,12 +257,12 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.6.2 + 3.7.0 org.apache.maven.plugins maven-surefire-report-plugin - 3.4.0 + 3.5.0 org.apache.maven.plugins @@ -286,12 +279,12 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.8.0 + 3.10.0 org.apache.maven.plugins maven-checkstyle-plugin - 3.4.0 + 3.5.0 src/main/config/checkstyle.xml true @@ -304,57 +297,6 @@ - - org.codehaus.mojo - findbugs-maven-plugin - 3.0.5 - - true - - - - org.codehaus.mojo - jdepend-maven-plugin - 2.0 - - - org.codehaus.mojo - taglist-maven-plugin - 3.1.0 - - - - - Ungelöste Probleme - - - FIXME - ignoreCase - - - - - Offene Punkte - - - TODO - ignoreCase - - - - - Markierungen - - - XXX - ignoreCase - - - - - - - diff --git a/renovate.json b/renovate.json index 2376f42..31c7d78 100644 --- a/renovate.json +++ b/renovate.json @@ -11,6 +11,7 @@ "org.apache.maven.plugins:maven-surefire-report-plugin", "jfrog/setup-jfrog-cli", "org.codehaus.mojo:taglist-maven-plugin", + "com.github.spotbugs:spotbugs-maven-plugin", "github-action" ], "matchUpdateTypes": [ diff --git a/src/main/java/com/bitctrl/Constants.java b/src/main/java/com/bitctrl/Constants.java index 53ec1b8..e83a06f 100644 --- a/src/main/java/com/bitctrl/Constants.java +++ b/src/main/java/com/bitctrl/Constants.java @@ -63,8 +63,8 @@ public final class Constants { /** * Ein leerer String. *

- * Hinweis: Der Test mit {@code equals()} auf den Leerstring ist - * sehr ineffektiv, deswegen sollte bis Java 6 besser geprüft werden ob + * Hinweis: Der Test mit {@code equals()} auf den Leerstring ist sehr + * ineffektiv, deswegen sollte bis Java 6 besser geprüft werden ob * {@link String#length()} gleich 0 ist. Ab Java 6 kann für den Test auf den * Leerstring {@link String#isEmpty()} verwendet werden. */ diff --git a/src/main/java/com/bitctrl/ReleaseInfo.java b/src/main/java/com/bitctrl/ReleaseInfo.java index 7fedb19..4c1c552 100644 --- a/src/main/java/com/bitctrl/ReleaseInfo.java +++ b/src/main/java/com/bitctrl/ReleaseInfo.java @@ -47,8 +47,7 @@ public class ReleaseInfo { /** * Erzeugt eine Versionsnummer. * - * @param major - * das Major-Release. + * @param major das Major-Release. */ public ReleaseInfo(final int major) { this.major = major; @@ -60,10 +59,8 @@ public ReleaseInfo(final int major) { /** * Erzeugt eine Versionsnummer. * - * @param major - * das Major-Release. - * @param minor - * das Minor-Release. + * @param major das Major-Release. + * @param minor das Minor-Release. */ public ReleaseInfo(final int major, final int minor) { this.major = major; @@ -75,12 +72,9 @@ public ReleaseInfo(final int major, final int minor) { /** * Erzeugt eine Versionsnummer. * - * @param major - * das Major-Release. - * @param minor - * das Minor-Release. - * @param patchLevel - * der Patch-Level. + * @param major das Major-Release. + * @param minor das Minor-Release. + * @param patchLevel der Patch-Level. */ public ReleaseInfo(final int major, final int minor, final int patchLevel) { this.major = major; @@ -92,17 +86,12 @@ public ReleaseInfo(final int major, final int minor, final int patchLevel) { /** * Erzeugt eine Versionsnummer. * - * @param major - * das Major-Release. - * @param minor - * das Minor-Release. - * @param patchLevel - * der Patch-Level. - * @param buildNumber - * die Build-Number. + * @param major das Major-Release. + * @param minor das Minor-Release. + * @param patchLevel der Patch-Level. + * @param buildNumber die Build-Number. */ - public ReleaseInfo(final int major, final int minor, final int patchLevel, - final int buildNumber) { + public ReleaseInfo(final int major, final int minor, final int patchLevel, final int buildNumber) { this.major = major; this.minor = minor; this.patchLevel = patchLevel; @@ -112,8 +101,7 @@ public ReleaseInfo(final int major, final int minor, final int patchLevel, /** * Erzeugt eine Versionsnummer. * - * @param release - * ein String, der die Versionsnummer enthält. + * @param release ein String, der die Versionsnummer enthält. */ public ReleaseInfo(final String release) { if (Pattern.matches(PATTERN, release)) { @@ -156,8 +144,7 @@ public ReleaseInfo(final String release) { } buildNumber = Integer.valueOf(release.substring(start)); } else { - throw new IllegalArgumentException( - "Release muss dem Muster 1[.4[.2[-15]]] entsprechen."); + throw new IllegalArgumentException("Release muss dem Muster 1[.4[.2[-15]]] entsprechen."); } } @@ -198,9 +185,9 @@ public Integer getPatchLevel() { } /** - * Gibt das Release für den Menschen lesbar zurück. Teile die nicht - * angegeben sind, werden nicht ausgegeben. Fehlt z. B. die Build - * Number wird diese auch nicht berücksichtigt. + * Gibt das Release für den Menschen lesbar zurück. Teile die nicht angegeben + * sind, werden nicht ausgegeben. Fehlt z. B. die Build Number wird diese + * auch nicht berücksichtigt. * * @return ein Text nach dem Muster 1[.4[.2[-15]]]. */ diff --git a/src/main/java/com/bitctrl/VersionInfo.java b/src/main/java/com/bitctrl/VersionInfo.java index f17ca77..1b3b50c 100644 --- a/src/main/java/com/bitctrl/VersionInfo.java +++ b/src/main/java/com/bitctrl/VersionInfo.java @@ -46,8 +46,7 @@ public class VersionInfo { /** * Liest die Beschreibung aus dem Manifest-File. * - * @param manifest - * ein Manifestfile. + * @param manifest ein Manifestfile. * @see Attributes.Name#IMPLEMENTATION_TITLE * @see Attributes.Name#IMPLEMENTATION_VERSION * @see Attributes.Name#IMPLEMENTATION_VENDOR @@ -66,17 +65,12 @@ public VersionInfo(final Manifest manifest) { /** * Erzeugt eine Beschreibung. * - * @param title - * der Name der Applikation oder der Bibliothek. - * @param version - * die Versionsnummer. - * @param vendor - * das Unternehmen. - * @param vendorUrl - * die Internetseite des Unternehmens. + * @param title der Name der Applikation oder der Bibliothek. + * @param version die Versionsnummer. + * @param vendor das Unternehmen. + * @param vendorUrl die Internetseite des Unternehmens. */ - public VersionInfo(final String title, final String version, - final String vendor, final String vendorUrl) { + public VersionInfo(final String title, final String version, final String vendor, final String vendorUrl) { this.title = title; this.version = version; this.vendor = vendor; @@ -84,8 +78,8 @@ public VersionInfo(final String title, final String version, } /** - * Gibt die Versionsnummer als {@code ReleaseInfo} zurück. Dies ist nur - * möglich, wenn die Versionsnummer einer Releasenummer entspricht. + * Gibt die Versionsnummer als {@code ReleaseInfo} zurück. Dies ist nur möglich, + * wenn die Versionsnummer einer Releasenummer entspricht. * * @return das Release. */ @@ -110,7 +104,7 @@ public String getTitle() { public URL getURL() { try { return new URL(getVendorUrl()); - } catch (MalformedURLException ex) { + } catch (final MalformedURLException ex) { throw new IllegalStateException(ex); } } diff --git a/src/main/java/com/bitctrl/beans/AbstractBeanInfo.java b/src/main/java/com/bitctrl/beans/AbstractBeanInfo.java index 0dc7393..ba48742 100644 --- a/src/main/java/com/bitctrl/beans/AbstractBeanInfo.java +++ b/src/main/java/com/bitctrl/beans/AbstractBeanInfo.java @@ -50,8 +50,8 @@ public abstract class AbstractBeanInfo extends SimpleBeanInfo { * Die Methode legt die zu beschreibende Java Bean fest und setzt deren * übersetzten Namen und Kurzbeschreibung. Da sich die Bean zur Laufzeit * i. d. R. nicht ändert wird das Ergebnis der Funktion intern - * statisch gecacht, so dass der Aufruf ab dem zweiten Mal schneller - * vonstatten geht. + * statisch gecacht, so dass der Aufruf ab dem zweiten Mal schneller vonstatten + * geht. * * {@inheritDoc} * @@ -76,7 +76,8 @@ public BeanDescriptor getBeanDescriptor() { /** * Die Methode registriert die vorhandenen Properties und setzt deren übersetzte * Namen und Kurzbeschreibungen. In Umgebungen mit Mehrsprachigkeit können sich - * die Properties zur Laufzeit ändern (z.B. {@link #getDisplayName(PropertyInfo)}. + * die Properties zur Laufzeit ändern (z.B. + * {@link #getDisplayName(PropertyInfo)}. * * {@inheritDoc} * @@ -100,12 +101,12 @@ public PropertyDescriptor[] getPropertyDescriptors() { for (int i = 0; i < propertyDescriptors.length; ++i) { final PropertyDescriptor prop; - Class beanClass = getBeanClass(); + final Class beanClass = getBeanClass(); String propName = propInfo[i].name(); propName = propName.substring(0, 1).toUpperCase() + propName.substring(1); - String readMethodName = getReadMethodName(beanClass, propName); - String writeMethodName = getWriteMethodName(beanClass, propName); + final String readMethodName = getReadMethodName(beanClass, propName); + final String writeMethodName = getWriteMethodName(beanClass, propName); prop = new PropertyDescriptor(propInfo[i].name(), getBeanClass(), readMethodName, writeMethodName); prop.setDisplayName(getDisplayName(propInfo[i])); @@ -130,33 +131,32 @@ public PropertyDescriptor[] getPropertyDescriptors() { } private String getReadMethodName(Class beanClass, String propName) { - + try { return beanClass.getMethod("get" + propName).getName(); - } catch (NoSuchMethodException ignored) { + } catch (final NoSuchMethodException ignored) { try { return beanClass.getMethod("is" + propName).getName(); - } catch (NoSuchMethodException ex) { + } catch (final NoSuchMethodException ex) { return null; } } } private String getWriteMethodName(Class beanClass, String propName) { - - String name = "set" + propName; - - Method[] methods = beanClass.getMethods(); - for ( Method method : methods) { - if( name.equals(method.getName())) { + + final String name = "set" + propName; + + final Method[] methods = beanClass.getMethods(); + for (final Method method : methods) { + if (name.equals(method.getName())) { return name; } } - + return null; } - /** * Gibt die Liste der Properties zurück der Java Bean zurück. * @@ -165,15 +165,15 @@ private String getWriteMethodName(Class beanClass, String propName) { protected abstract PropertyInfo[] getProperties(); /** - * Gibt die Liste der Properties zurück, die standardmäßig ausgeblendet - * werden sollen. Abgeleite Klassen können die Methode überschreiben. Die + * Gibt die Liste der Properties zurück, die standardmäßig ausgeblendet werden + * sollen. Abgeleite Klassen können die Methode überschreiben. Die * Standardimplementierung gibt eine leere Liste zurück. *

- * Hinweis: Die versteckten Properties müssen auch in der Liste - * aller Properties enthalten sein. + * Hinweis: Die versteckten Properties müssen auch in der Liste aller + * Properties enthalten sein. * - * @return die Liste der versteckten Properties oder ein leeres Feld, - * niemals {@code null}. + * @return die Liste der versteckten Properties oder ein leeres Feld, niemals + * {@code null}. * @see #getProperties() */ protected PropertyInfo[] getHiddenProperties() { @@ -181,8 +181,8 @@ protected PropertyInfo[] getHiddenProperties() { } /** - * Gibt die Liste der Properties zurück, die als wichtig hervorgehoben - * werden sollen. Abgeleite Klassen können die Methode überschreiben. Die + * Gibt die Liste der Properties zurück, die als wichtig hervorgehoben werden + * sollen. Abgeleite Klassen können die Methode überschreiben. Die * Standardimplementierung gibt eine leere Liste zurück. *

* Hinweis: Die wichtigen Properties müssen auch in der Liste aller @@ -198,8 +198,8 @@ protected PropertyInfo[] getPreferredProperties() { /** * Gibt die Liste der Properties zurück, die nur fortgeschrittenen Nutzern - * angeboten werden sollen. Abgeleite Klassen können die Methode - * überschreiben. Die Standardimplementierung gibt eine leere Liste zurück. + * angeboten werden sollen. Abgeleite Klassen können die Methode überschreiben. + * Die Standardimplementierung gibt eine leere Liste zurück. *

* Hinweis: Die Expertenproperties müssen auch in der Liste aller * Properties enthalten sein. @@ -214,11 +214,10 @@ protected PropertyInfo[] getExpertProperties() { /** * Gibt den übersetzten Namen der Property zurück. Die Methode sollte in - * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung - * gibt einfach den Propertynamen zurück. + * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung gibt + * einfach den Propertynamen zurück. * - * @param info - * eine Propertybeschreibung. + * @param info eine Propertybeschreibung. * @return der übersetzte Propertyname. */ protected String getDisplayName(final PropertyInfo info) { @@ -226,13 +225,12 @@ protected String getDisplayName(final PropertyInfo info) { } /** - * Gibt eine kurze Beschreibung der Property zurück. Diese kann z. B. - * von einem Editor als Tooltip angezeigt werden. Die Methode sollte in - * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung - * gibt einfach den übersetzen Propertynamen zurück. + * Gibt eine kurze Beschreibung der Property zurück. Diese kann z. B. von + * einem Editor als Tooltip angezeigt werden. Die Methode sollte in abgeleiteten + * Klassen überschrieben werden. Die Standardimplementierung gibt einfach den + * übersetzen Propertynamen zurück. * - * @param info - * eine Propertybeschreibung. + * @param info eine Propertybeschreibung. * @return die kurze Beanbeschreibung. * @see #getDisplayName(PropertyInfo) */ @@ -249,8 +247,8 @@ protected String getShortDescription(final PropertyInfo info) { /** * Gibt den übersetzten Namen der Java Bean zurück. Die Methode sollte in - * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung - * gibt einfach den Klassennamen (ohne Package) zurück. + * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung gibt + * einfach den Klassennamen (ohne Package) zurück. * * @return der übersetzte Beanname. */ @@ -259,10 +257,10 @@ protected String getDisplayName() { } /** - * Gibt eine kurze Beschreibung der Java Bean zurück. Diese kann z. B. - * von einem Editor als Tooltip angezeigt werden. Die Methode sollte in - * abgeleiteten Klassen überschrieben werden. Die Standardimplementierung - * gibt einfach den übersetzen Beannamen zurück. + * Gibt eine kurze Beschreibung der Java Bean zurück. Diese kann z. B. von + * einem Editor als Tooltip angezeigt werden. Die Methode sollte in abgeleiteten + * Klassen überschrieben werden. Die Standardimplementierung gibt einfach den + * übersetzen Beannamen zurück. * * @return die kurze Beanbeschreibung. * @see #getDisplayName() diff --git a/src/main/java/com/bitctrl/beans/BeanEvent.java b/src/main/java/com/bitctrl/beans/BeanEvent.java index 6fdb304..901bfcb 100644 --- a/src/main/java/com/bitctrl/beans/BeanEvent.java +++ b/src/main/java/com/bitctrl/beans/BeanEvent.java @@ -42,10 +42,8 @@ public class BeanEvent extends EventObject { /** * Initialisert das Event. * - * @param source - * die Quelle des Events. - * @param beanData - * die neuen Daten der Bean. + * @param source die Quelle des Events. + * @param beanData die neuen Daten der Bean. */ public BeanEvent(final Object source, final Object beanData) { super(source); diff --git a/src/main/java/com/bitctrl/beans/BeanListener.java b/src/main/java/com/bitctrl/beans/BeanListener.java index a47d956..77dadf2 100644 --- a/src/main/java/com/bitctrl/beans/BeanListener.java +++ b/src/main/java/com/bitctrl/beans/BeanListener.java @@ -39,8 +39,7 @@ public interface BeanListener extends EventListener { /** * Informiert einen Listener über die Propertyänderung an einer Bean. * - * @param e - * das Event. + * @param e das Event. */ void beanChanged(BeanEvent e); diff --git a/src/main/java/com/bitctrl/beans/BeanUtils.java b/src/main/java/com/bitctrl/beans/BeanUtils.java index 509c894..bcfce06 100644 --- a/src/main/java/com/bitctrl/beans/BeanUtils.java +++ b/src/main/java/com/bitctrl/beans/BeanUtils.java @@ -48,11 +48,9 @@ public final class BeanUtils { * Getter und Setter verfügen. Sind beide vorhanden, müssen sie auch {@code * public} sein. * - * @param source - * die zu kopierende Bean. + * @param source die zu kopierende Bean. * @return die Kopie der Bean. - * @throws IllegalArgumentException - * wenn die Bean nicht kopierbar ist. + * @throws IllegalArgumentException wenn die Bean nicht kopierbar ist. */ public static Object copy(final Object source) { final Class clazz = source.getClass(); @@ -61,19 +59,16 @@ public static Object copy(final Object source) { try { info = Introspector.getBeanInfo(clazz); } catch (final IntrospectionException ex) { - throw new IllegalArgumentException("Can not introspect bean: " - + clazz, ex); + throw new IllegalArgumentException("Can not introspect bean: " + clazz, ex); } final Object target; try { target = clazz.newInstance(); } catch (final InstantiationException ex) { - throw new IllegalArgumentException( - "Can not copy interface or abstract class: " + clazz, ex); + throw new IllegalArgumentException("Can not copy interface or abstract class: " + clazz, ex); } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Bean must have a public default constructor: " + clazz, ex); + throw new IllegalArgumentException("Bean must have a public default constructor: " + clazz, ex); } for (final PropertyDescriptor pd : info.getPropertyDescriptors()) { @@ -83,17 +78,13 @@ public static Object copy(final Object source) { try { setter.invoke(target, getter.invoke(source)); } catch (final IllegalArgumentException ex) { - throw new IllegalArgumentException( - "Getter and setter have different type: " + clazz - + ", " + pd, ex); + throw new IllegalArgumentException("Getter and setter have different type: " + clazz + ", " + pd, + ex); } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Getter and setter must be public: " + clazz + ", " - + pd, ex); + throw new IllegalArgumentException("Getter and setter must be public: " + clazz + ", " + pd, ex); } catch (final InvocationTargetException ex) { - throw new IllegalArgumentException( - "Getter or setter throws an exception: " + clazz - + ", " + pd, ex); + throw new IllegalArgumentException("Getter or setter throws an exception: " + clazz + ", " + pd, + ex); } } } @@ -104,91 +95,66 @@ public static Object copy(final Object source) { /** * Erstellt eine neue Instanz der übergebenen Bean-Klasse. * - * @param - * der Typ der Bean die angelegt werden soll. - * @param beanClass - * die Klasse der Bean die angelegt werden soll. + * @param der Typ der Bean die angelegt werden soll. + * @param beanClass die Klasse der Bean die angelegt werden soll. * @return die neue Instanz der Bean. */ public static T createInstance(final Class beanClass) { try { return beanClass.newInstance(); - } catch (final InstantiationException ex) { - throw new IllegalArgumentException( - "Cannot create new instance of bean type " + beanClass - + ".", ex); - } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Cannot create new instance of bean type " + beanClass - + ".", ex); + } catch (final InstantiationException | IllegalAccessException ex) { + throw new IllegalArgumentException("Cannot create new instance of bean type " + beanClass + ".", ex); } } /** * Liest den Wert der Property einer Java Bean. * - * @param target - * eine Java Bean. - * @param propertyName - * der Name der Property. + * @param target eine Java Bean. + * @param propertyName der Name der Property. * @return der Wert. */ - public static Object getProperty(final Object target, - final String propertyName) { + public static Object getProperty(final Object target, final String propertyName) { final BeanInfo beanInfo = getBeanInfo(target.getClass()); for (final PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) { if (pd.getName().equals(propertyName)) { try { return pd.getReadMethod().invoke(target); - } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Cannot read property data.", ex); - } catch (final InvocationTargetException ex) { - throw new IllegalArgumentException( - "Cannot read property data.", ex); + } catch (final IllegalAccessException | InvocationTargetException ex) { + throw new IllegalArgumentException("Cannot read property data.", ex); } } } - throw new IllegalArgumentException("Bean " - + target.getClass().getName() + " has no property " - + propertyName + "."); + throw new IllegalArgumentException( + "Bean " + target.getClass().getName() + " has no property " + propertyName + "."); } /** * Setzt den Wert der Property einer Java Bean. * - * @param target - * eine Java Bean. - * @param propertyName - * der Name der Property. - * @param value - * der neue Wert. + * @param target eine Java Bean. + * @param propertyName der Name der Property. + * @param value der neue Wert. */ - public static void setProperty(final Object target, - final String propertyName, final Object value) { + public static void setProperty(final Object target, final String propertyName, final Object value) { final BeanInfo beanInfo = getBeanInfo(target.getClass()); for (final PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) { if (pd.getName().equals(propertyName)) { try { pd.getWriteMethod().invoke(target, value); - } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Cannot set property data.", ex); - } catch (final InvocationTargetException ex) { - throw new IllegalArgumentException( - "Cannot set property data.", ex); + } catch (final IllegalAccessException | InvocationTargetException ex) { + throw new IllegalArgumentException("Cannot set property data.", ex); } return; } } - throw new IllegalArgumentException("Bean " - + target.getClass().getName() + " has no property " - + propertyName + "."); + throw new IllegalArgumentException( + "Bean " + target.getClass().getName() + " has no property " + propertyName + "."); } @@ -196,15 +162,13 @@ public static void setProperty(final Object target, .synchronizedMap(new WeakHashMap, BeanInfo>()); /** - * Bestimmt zu einer Klasse die dazugehörige {@link BeanInfo}. Es wird die - * Bean Info-Klasse direkt geladen, weil - * {@link Introspector#getBeanInfo(Class)} eine Bean Info zurückgibt, deren - * Properties nicht mehr der Originalsortierung entsprechen. Sollte die Bean - * Info-Klasse nicht direkt geladen werden können, wird als Rückfallebene - * der Introspector gefragt. + * Bestimmt zu einer Klasse die dazugehörige {@link BeanInfo}. Es wird die Bean + * Info-Klasse direkt geladen, weil {@link Introspector#getBeanInfo(Class)} eine + * Bean Info zurückgibt, deren Properties nicht mehr der Originalsortierung + * entsprechen. Sollte die Bean Info-Klasse nicht direkt geladen werden können, + * wird als Rückfallebene der Introspector gefragt. * - * @param beanClass - * eine Klasse. + * @param beanClass eine Klasse. * @return die Bean Info zu der Klasse. */ public static BeanInfo getBeanInfo(final Class beanClass) { @@ -216,23 +180,16 @@ public static BeanInfo getBeanInfo(final Class beanClass) { Class beanInfoClass; BeanInfo info = null; try { - beanInfoClass = (Class) loader - .loadClass(beanClass.getName() + "BeanInfo"); + beanInfoClass = (Class) loader.loadClass(beanClass.getName() + "BeanInfo"); info = beanInfoClass.newInstance(); } catch (final ClassNotFoundException ex) { try { info = Introspector.getBeanInfo(beanClass); } catch (final IntrospectionException ex1) { - throw new IllegalArgumentException( - "Can not analyze Java Bean type " + beanClass + ".", - ex1); + throw new IllegalArgumentException("Can not analyze Java Bean type " + beanClass + ".", ex1); } - } catch (final InstantiationException ex) { - throw new IllegalArgumentException( - "Can not analyze Java Bean type " + beanClass + ".", ex); - } catch (final IllegalAccessException ex) { - throw new IllegalArgumentException( - "Can not analyze Java Bean type " + beanClass + ".", ex); + } catch (final InstantiationException | IllegalAccessException ex) { + throw new IllegalArgumentException("Can not analyze Java Bean type " + beanClass + ".", ex); } beanInfoCache.put(beanClass, info); @@ -242,8 +199,7 @@ public static BeanInfo getBeanInfo(final Class beanClass) { /** * Prüft, ob es sich bei einer Property um eine Textproperty handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine Textproperty handelt. */ public static boolean isText(final PropertyDescriptor pd) { @@ -253,13 +209,11 @@ public static boolean isText(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um eine ganze Zahl handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine ganze Zahl handelt. */ public static boolean isNumber(final PropertyDescriptor pd) { - return pd.getPropertyType().isAssignableFrom(long.class) - || pd.getPropertyType().isAssignableFrom(Long.class) + return pd.getPropertyType().isAssignableFrom(long.class) || pd.getPropertyType().isAssignableFrom(Long.class) || pd.getPropertyType().isAssignableFrom(int.class) || pd.getPropertyType().isAssignableFrom(Integer.class) || pd.getPropertyType().isAssignableFrom(short.class) @@ -271,13 +225,11 @@ public static boolean isNumber(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um eine reele Zahl handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine reele Zahl handelt. */ public static boolean isRealNumber(final PropertyDescriptor pd) { - return pd.getPropertyType().isAssignableFrom(float.class) - || pd.getPropertyType().isAssignableFrom(Float.class) + return pd.getPropertyType().isAssignableFrom(float.class) || pd.getPropertyType().isAssignableFrom(Float.class) || pd.getPropertyType().isAssignableFrom(double.class) || pd.getPropertyType().isAssignableFrom(Double.class); } @@ -285,8 +237,7 @@ public static boolean isRealNumber(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um eine Boolean-Property handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine Boolean-Property handelt. */ public static boolean isBoolean(final PropertyDescriptor pd) { @@ -297,8 +248,7 @@ public static boolean isBoolean(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um eine Zeitangabe handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine Zeitangabe handelt. */ public static boolean isTime(final PropertyDescriptor pd) { @@ -308,8 +258,7 @@ public static boolean isTime(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um eine Datumsangabe handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um eine Datumsangabe handelt. */ public static boolean isDate(final PropertyDescriptor pd) { @@ -319,23 +268,20 @@ public static boolean isDate(final PropertyDescriptor pd) { /** * Prüft, ob es sich bei einer Property um einen Zeitstempel handelt. * - * @param pd - * ein Property Descriptor. + * @param pd ein Property Descriptor. * @return {@code true}, wenn es sich um einen Zeitstempel handelt. */ public static boolean isTimestamp(final PropertyDescriptor pd) { return pd.getPropertyType().isAssignableFrom(java.util.Date.class) - || pd.getPropertyType().isAssignableFrom( - java.sql.Timestamp.class); + || pd.getPropertyType().isAssignableFrom(java.sql.Timestamp.class); } /** - * Gibt den eine Bean als String zurück. Der zurückgegebene String - * entspricht dem üblichen allgemeinen {@code toString()} z. B. {@code + * Gibt den eine Bean als String zurück. Der zurückgegebene String entspricht + * dem üblichen allgemeinen {@code toString()} z. B. {@code * Punkt[x=10, y=20]}. * - * @param bean - * eine beliebige Java Bean. + * @param bean eine beliebige Java Bean. * @return der String zur Bean. */ public static String toString(final Object bean) { @@ -347,11 +293,9 @@ public static String toString(final Object bean) { final Method[] methods = objClass.getMethods(); String buffer = bean.getClass().getName() + "["; - for (int i = 0; i < methods.length; ++i) { - final Method method = methods[i]; - if (!method.getName().equals("getClass") - && (method.getName().startsWith("get") || method.getName() - .startsWith("is")) + for (final Method method : methods) { + if (!"getClass".equals(method.getName()) + && (method.getName().startsWith("get") || method.getName().startsWith("is")) && method.getParameterTypes().length == 0) { final String name = method.getName(); if (name.startsWith("get")) { diff --git a/src/main/java/com/bitctrl/beans/PropertyInfo.java b/src/main/java/com/bitctrl/beans/PropertyInfo.java index d96503b..ee897e7 100644 --- a/src/main/java/com/bitctrl/beans/PropertyInfo.java +++ b/src/main/java/com/bitctrl/beans/PropertyInfo.java @@ -45,11 +45,11 @@ public interface PropertyInfo { /** * Vergleicht zwei Infos anhand des Propertynamens. * - * @param other - * eine andere {@link PropertyInfo}. + * @param other eine andere {@link PropertyInfo}. * @return {@code true}, wenn beide identisch sind. * @see #name() */ + @Override boolean equals(Object other); } diff --git a/src/main/java/com/bitctrl/commands/AbstractCommand.java b/src/main/java/com/bitctrl/commands/AbstractCommand.java index 3ab8d0b..dab556d 100644 --- a/src/main/java/com/bitctrl/commands/AbstractCommand.java +++ b/src/main/java/com/bitctrl/commands/AbstractCommand.java @@ -38,22 +38,27 @@ public abstract class AbstractCommand implements Command { private final EventListenerList listener = new EventListenerList(); private boolean canceled = false; + @Override public void exec() { new Thread(this, toString()).start(); } + @Override public void cancel() { canceled = true; } + @Override public boolean isCanceled() { return canceled; } + @Override public void addCommandFinishedListener(final CommandFinishedListener l) { listener.add(CommandFinishedListener.class, l); } + @Override public void removeCommandFinishedListener(final CommandFinishedListener l) { listener.remove(CommandFinishedListener.class, l); } @@ -61,18 +66,13 @@ public void removeCommandFinishedListener(final CommandFinishedListener l) { /** * Informiert die angemeldeten Listener über das Ende des Befehls. * - * @param successful - * {@code true}, wenn der Befehl erfolgreich beendet wurde. - * @param message - * eine Vollzugsmittuilung oder Fehlernachricht. + * @param successful {@code true}, wenn der Befehl erfolgreich beendet wurde. + * @param message eine Vollzugsmittuilung oder Fehlernachricht. */ - protected void fireCommandFinished(final boolean successful, - final String message) { - final CommandFinishedEvent e = new CommandFinishedEvent(this, - successful, message); + protected void fireCommandFinished(final boolean successful, final String message) { + final CommandFinishedEvent e = new CommandFinishedEvent(this, successful, message); - for (final CommandFinishedListener l : listener - .getListeners(CommandFinishedListener.class)) { + for (final CommandFinishedListener l : listener.getListeners(CommandFinishedListener.class)) { l.commandFinished(e); } } diff --git a/src/main/java/com/bitctrl/commands/Command.java b/src/main/java/com/bitctrl/commands/Command.java index d9c07dd..c891b9a 100644 --- a/src/main/java/com/bitctrl/commands/Command.java +++ b/src/main/java/com/bitctrl/commands/Command.java @@ -37,17 +37,18 @@ public interface Command extends Runnable { /** * Führt den Befehl aus. Die Methode blockiert während der Ausführung des - * Befehls. Die Methode muss regelmäßig mit {@link #isCanceled()} prüfen, ob - * der Befehl abgebrochen werden soll. + * Befehls. Die Methode muss regelmäßig mit {@link #isCanceled()} prüfen, ob der + * Befehl abgebrochen werden soll. * * @see #isCanceled() */ + @Override void run(); /** - * Führt den Befehl im Hintergrund aus. Die Methode blockiert nicht während - * der Ausführung des Befehls, da die {@link #run()}-Methode dazu in einem - * eigenen Thread gestartet wird. + * Führt den Befehl im Hintergrund aus. Die Methode blockiert nicht während der + * Ausführung des Befehls, da die {@link #run()}-Methode dazu in einem eigenen + * Thread gestartet wird. * * @see #isCanceled() */ @@ -69,16 +70,14 @@ public interface Command extends Runnable { /** * Registriert einen Listener. * - * @param l - * der Listener. + * @param l der Listener. */ void addCommandFinishedListener(CommandFinishedListener l); /** * Meldet einen Listener wieder ab. * - * @param l - * der Listener. + * @param l der Listener. */ void removeCommandFinishedListener(CommandFinishedListener l); diff --git a/src/main/java/com/bitctrl/commands/CommandFinishedEvent.java b/src/main/java/com/bitctrl/commands/CommandFinishedEvent.java index c5f6414..c43dada 100644 --- a/src/main/java/com/bitctrl/commands/CommandFinishedEvent.java +++ b/src/main/java/com/bitctrl/commands/CommandFinishedEvent.java @@ -42,15 +42,11 @@ public class CommandFinishedEvent extends EventObject { /** * Initialisiert das Objekt {@code CommandFinishedEvent}. * - * @param source - * die Quelle des Events. - * @param successful - * {@code true}, wenn der Befehl erfolgreich beendet wurde. - * @param message - * eine Vollzugsmitteilung oder Fehlernachricht. + * @param source die Quelle des Events. + * @param successful {@code true}, wenn der Befehl erfolgreich beendet wurde. + * @param message eine Vollzugsmitteilung oder Fehlernachricht. */ - public CommandFinishedEvent(final Command source, final boolean successful, - final String message) { + public CommandFinishedEvent(final Command source, final boolean successful, final String message) { super(source); this.successful = successful; this.message = message; diff --git a/src/main/java/com/bitctrl/commands/CommandFinishedListener.java b/src/main/java/com/bitctrl/commands/CommandFinishedListener.java index 554de1c..f446088 100644 --- a/src/main/java/com/bitctrl/commands/CommandFinishedListener.java +++ b/src/main/java/com/bitctrl/commands/CommandFinishedListener.java @@ -39,8 +39,7 @@ public interface CommandFinishedListener extends EventListener { /** * Wird aufgerufen, wenn ein Befehl beendet wurde. * - * @param e - * das Event. + * @param e das Event. */ void commandFinished(CommandFinishedEvent e); diff --git a/src/main/java/com/bitctrl/commands/Makro.java b/src/main/java/com/bitctrl/commands/Makro.java index 11382c5..a9b7841 100644 --- a/src/main/java/com/bitctrl/commands/Makro.java +++ b/src/main/java/com/bitctrl/commands/Makro.java @@ -37,18 +37,18 @@ */ public class Makro extends AbstractCommand { - private final List script = new ArrayList(); + private final List script = new ArrayList<>(); /** * Fügt dem Makro einen auszuführenden Befehl hinzu. * - * @param cmd - * ein Befehl, + * @param cmd ein Befehl, */ public void add(final Command cmd) { script.add(cmd); } + @Override public void run() { for (final Command cmd : script) { cmd.run(); diff --git a/src/main/java/com/bitctrl/geo/GeoUtil.java b/src/main/java/com/bitctrl/geo/GeoUtil.java index 349a13e..60202c8 100644 --- a/src/main/java/com/bitctrl/geo/GeoUtil.java +++ b/src/main/java/com/bitctrl/geo/GeoUtil.java @@ -36,18 +36,14 @@ public final class GeoUtil { /** - * Skaliert unter Berücksichtigung des Seitenverhältnisses die Breite und - * Höhe derart, dass die Ausnahme ein bestimmtes Maximum nicht - * überschreiten. + * Skaliert unter Berücksichtigung des Seitenverhältnisses die Breite und Höhe + * derart, dass die Ausnahme ein bestimmtes Maximum nicht überschreiten. * - * @param toLarge - * die zu skalierende Dimension. - * @param maximum - * das angestrebte Maximum. + * @param toLarge die zu skalierende Dimension. + * @param maximum das angestrebte Maximum. * @return die herunterskalierte Dimension im gleichen Seitenverhältnis. */ - public static Dimension resizeToFit(final Dimension toLarge, - final Dimension maximum) { + public static Dimension resizeToFit(final Dimension toLarge, final Dimension maximum) { if (toLarge == null) { throw new IllegalArgumentException("toLarge is null"); } diff --git a/src/main/java/com/bitctrl/geo/graph/BaseEdge.java b/src/main/java/com/bitctrl/geo/graph/BaseEdge.java index 357f8bb..9f99c09 100644 --- a/src/main/java/com/bitctrl/geo/graph/BaseEdge.java +++ b/src/main/java/com/bitctrl/geo/graph/BaseEdge.java @@ -60,28 +60,30 @@ public BaseEdge() { /** * Initialisiert die Kante mit ihren Knoten. * - * @param source - * der Startknoten. - * @param target - * der Endknoten. + * @param source der Startknoten. + * @param target der Endknoten. */ public BaseEdge(final BaseNode source, final BaseNode target) { this.source = source; this.target = target; } + @Override public String getName() { return name; } + @Override public Node getSource() { return source; } + @Override public Node getTarget() { return target; } + @Override public void setName(final String name) { this.name = name; } @@ -91,8 +93,7 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (obj instanceof Node) { - final Node other = (Node) obj; + if (obj instanceof final Node other) { return getName().equals(other.getName()); } return false; diff --git a/src/main/java/com/bitctrl/geo/graph/BaseGraph.java b/src/main/java/com/bitctrl/geo/graph/BaseGraph.java index 619d10a..5aa464e 100644 --- a/src/main/java/com/bitctrl/geo/graph/BaseGraph.java +++ b/src/main/java/com/bitctrl/geo/graph/BaseGraph.java @@ -38,51 +38,58 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der Knoten. - * @param - * der Typ der Kanten. + * @param der Typ der Knoten. + * @param der Typ der Kanten. */ public class BaseGraph implements Graph { /** Die Liste der Knoten im Graphen. */ - protected final List nodes = new LinkedList(); + protected final List nodes = new LinkedList<>(); /** Die Liste der Kanten im Graphen. */ - protected final List edges = new LinkedList(); + protected final List edges = new LinkedList<>(); + @Override public void addNode(final N node) { nodes.add(node); } + @Override public void removeNode(final N node) { nodes.remove(node); } + @Override public boolean containsNode(final N node) { return nodes.contains(node); } + @Override public Iterable nodes() { return nodes; } + @Override public void insertEdge(final E edge) { edges.add(edge); } + @Override public void removeEdge(final E edge) { edges.remove(edge); } + @Override public Iterable edges() { return edges; } + @Override public boolean containsEdge(final E edge) { return edges.contains(edge); } + @Override public boolean containsEdge(final N source, final N target) { for (final Edge e : edges()) { if (source.equals(e.getSource()) && target.equals(e.getTarget())) { @@ -92,8 +99,9 @@ public boolean containsEdge(final N source, final N target) { return false; } + @Override public Iterable inEdges(final N node) { - final List inEdges = new ArrayList(); + final List inEdges = new ArrayList<>(); BaseEdge edge; // Alle Eingangsbögen @@ -107,8 +115,9 @@ public Iterable inEdges(final N node) { return inEdges; } + @Override public Iterable outEdges(final N node) { - final List outEdges = new ArrayList(); + final List outEdges = new ArrayList<>(); BaseEdge edge; // Alle Ausgangsbögen @@ -122,8 +131,9 @@ public Iterable outEdges(final N node) { return outEdges; } + @Override public Iterable incidentEdges(final N node) { - final List incidentEdges = new ArrayList(); + final List incidentEdges = new ArrayList<>(); BaseEdge edge; // Alle Ausgangsbögen diff --git a/src/main/java/com/bitctrl/geo/graph/BaseNode.java b/src/main/java/com/bitctrl/geo/graph/BaseNode.java index d9e5a50..b16efc5 100644 --- a/src/main/java/com/bitctrl/geo/graph/BaseNode.java +++ b/src/main/java/com/bitctrl/geo/graph/BaseNode.java @@ -47,18 +47,19 @@ public class BaseNode implements Node { /** * Initialisiert den Knoten mit seinem Namen. * - * @param name - * der Knotenname. + * @param name der Knotenname. */ public BaseNode(final String name) { this.name = name; } + @Override public String getName() { assert name != null; return name; } + @Override public void setName(final String name) { if (name == null) { throw new NullPointerException("name must not be null"); @@ -71,8 +72,7 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (obj instanceof Node) { - final Node other = (Node) obj; + if (obj instanceof final Node other) { return getName().equals(other.getName()); } return false; @@ -82,7 +82,7 @@ public boolean equals(final Object obj) { public int hashCode() { throw new UnsupportedOperationException(); } - + /** * Gibt den Namen des Knoten zurück. * diff --git a/src/main/java/com/bitctrl/geo/graph/Edge.java b/src/main/java/com/bitctrl/geo/graph/Edge.java index 7e7f322..8ddcd20 100644 --- a/src/main/java/com/bitctrl/geo/graph/Edge.java +++ b/src/main/java/com/bitctrl/geo/graph/Edge.java @@ -43,8 +43,7 @@ public interface Edge { /** * Legt den Namen der Kante fest. * - * @param name - * der neue Kantenname. + * @param name der neue Kantenname. */ void setName(String name); diff --git a/src/main/java/com/bitctrl/geo/graph/Graph.java b/src/main/java/com/bitctrl/geo/graph/Graph.java index 3cf700f..edbbc41 100644 --- a/src/main/java/com/bitctrl/geo/graph/Graph.java +++ b/src/main/java/com/bitctrl/geo/graph/Graph.java @@ -31,34 +31,29 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der Knoten. - * @param - * der Typ der Kanten. + * @param der Typ der Knoten. + * @param der Typ der Kanten. */ public interface Graph { /** * Fügt einen neuen Knoten ohne Verbindung in den Graphen ein. * - * @param node - * der neue Knoten. + * @param node der neue Knoten. */ void addNode(N node); /** * Entfernt den angegebenen Knoten aus dem Graphen. * - * @param node - * ein Knoten des Graph. + * @param node ein Knoten des Graph. */ void removeNode(N node); /** * Prüft ob ein bestimmter Knoten im Graph enthalten ist. * - * @param node - * ein Knoten. + * @param node ein Knoten. * @return {@code true}, wenn der Knoten im Graph enthalten ist. */ boolean containsNode(N node); @@ -73,37 +68,30 @@ public interface Graph { /** * Fügt eine neue Kanten zwischen zwei Knoten in den Graphen ein. * - * @param edge - * die neue Kante. + * @param edge die neue Kante. */ void insertEdge(E edge); /** * Entfernt die angegebene Kante aus dem Graphen. * - * @param edge - * eine Kante des Graphen. + * @param edge eine Kante des Graphen. */ void removeEdge(E edge); /** - * Prüft ob der Graph eine Kante zwischen den beiden angegebenen Knoten - * besitzt. + * Prüft ob der Graph eine Kante zwischen den beiden angegebenen Knoten besitzt. * - * @param edge - * eine Kante. + * @param edge eine Kante. * @return {@code true}, wenn der Graph die Kante enthält. */ boolean containsEdge(E edge); /** - * Prüft ob der Graph eine Kante zwischen den beiden angegebenen Knoten - * besitzt. + * Prüft ob der Graph eine Kante zwischen den beiden angegebenen Knoten besitzt. * - * @param source - * der Startknoten der Kante. - * @param target - * der Endknoten der Kante. + * @param source der Startknoten der Kante. + * @param target der Endknoten der Kante. * @return {@code true}, wenn der Graph die Kante enthält. */ boolean containsEdge(N source, N target); @@ -118,8 +106,7 @@ public interface Graph { /** * Gibt einen Iterator der Ausgangsbögen eines Knotens zurück. * - * @param node - * ein Konten im Graph. + * @param node ein Konten im Graph. * @return der Ausgangsbogeniterator. */ Iterable outEdges(N node); @@ -127,8 +114,7 @@ public interface Graph { /** * Gibt einen Iterator der Eingangsbögen eines Knotens zurück. * - * @param node - * ein Konten im Graph. + * @param node ein Konten im Graph. * @return der Eingangsbogeniterator. */ Iterable inEdges(N node); @@ -136,8 +122,7 @@ public interface Graph { /** * Gibt einen Iterator über inzidenten Kanten eines Knoten zurück. * - * @param node - * ein Knoten im Graph. + * @param node ein Knoten im Graph. * @return der Iterator der inzidenten Kanten. */ Iterable incidentEdges(N node); diff --git a/src/main/java/com/bitctrl/geo/graph/Node.java b/src/main/java/com/bitctrl/geo/graph/Node.java index 0cc05d3..848de34 100644 --- a/src/main/java/com/bitctrl/geo/graph/Node.java +++ b/src/main/java/com/bitctrl/geo/graph/Node.java @@ -43,8 +43,7 @@ public interface Node { /** * Legt den Namen des Knotens fest. * - * @param name - * der neue Knotenname. + * @param name der neue Knotenname. */ void setName(String name); @@ -52,10 +51,10 @@ public interface Node { * Vergleicht diesen Knoten mit einem anderen. Die Standardimplementierung * vergleicht die Namen der beiden Knoten. * - * @param other - * ein anderer Knoten. + * @param other ein anderer Knoten. * @return {@code true}, wenn dieser Knoten und der andere gleich sind. */ + @Override boolean equals(Object other); } diff --git a/src/main/java/com/bitctrl/geo/graph/package-info.java b/src/main/java/com/bitctrl/geo/graph/package-info.java index 2941a8d..fbc2297 100644 --- a/src/main/java/com/bitctrl/geo/graph/package-info.java +++ b/src/main/java/com/bitctrl/geo/graph/package-info.java @@ -31,7 +31,6 @@ * genau einen Knoten von dem sie ausgeht und einen Knoten zu dem sie hinführt. * Ist eine Kante gerichtet, spricht man einem Bogen. Knoten besitzen eine * beliebig lange Liste von Ausgangsbögen und eine beliebige lange Liste von - * Eingangsbögen. Jede der beiden Bögenlisten kann leer sein. + * Eingangsbögen. Jede der beiden Bögenlisten kann leer sein. */ package com.bitctrl.geo.graph; - diff --git a/src/main/java/com/bitctrl/geo/graph/tree/TreeUtil.java b/src/main/java/com/bitctrl/geo/graph/tree/TreeUtil.java index 9bc96af..725f24b 100644 --- a/src/main/java/com/bitctrl/geo/graph/tree/TreeUtil.java +++ b/src/main/java/com/bitctrl/geo/graph/tree/TreeUtil.java @@ -36,23 +36,19 @@ public final class TreeUtil { /** * Bestimmt die notwendige Höhe eines B+-Baumes. * - * @param k - * die maximale Anzahl der Elemente, die pro Blatt gesichert - * werden dürfen. - * @param n - * Anzahl der unterzubringenden Elemente. + * @param k die maximale Anzahl der Elemente, die pro Blatt gesichert werden + * dürfen. + * @param n Anzahl der unterzubringenden Elemente. * @return die notwendige Baumhöhe. * @deprecated Funktion muss validiert werden, da scheinbar fehlerhaft. */ @Deprecated public static int necessaryHighOfBPlusTree(final int k, final long n) { if (n <= 1) { - throw new IllegalArgumentException( - "Number of elements must be greater than 1."); + throw new IllegalArgumentException("Number of elements must be greater than 1."); } if (k <= 0) { - throw new IllegalArgumentException( - "Number of leaf elements must be greater than 0."); + throw new IllegalArgumentException("Number of leaf elements must be greater than 0."); } final int b = k; @@ -64,17 +60,14 @@ public static int necessaryHighOfBPlusTree(final int k, final long n) { * Bestimmt die maximale Anzahl von Elementen, die in einem B+-Baum * untergebracht werden können. * - * @param k - * die maximale Anzahl der Elemente, die pro Blatt gesichert - * werden dürfen. - * @param height - * die gewünschte Höhe des Baumes. + * @param k die maximale Anzahl der Elemente, die pro Blatt gesichert + * werden dürfen. + * @param height die gewünschte Höhe des Baumes. * @return die maximale Elementanzahl im Baum. */ public static long maxElementsOfBPlusTree(final int k, final int height) { if (k <= 0) { - throw new IllegalArgumentException( - "Number of leaf elements must be greater than 0."); + throw new IllegalArgumentException("Number of leaf elements must be greater than 0."); } if (height <= 0) { throw new IllegalArgumentException("Height must be greater than 0."); diff --git a/src/main/java/com/bitctrl/geo/graph/tree/package-info.java b/src/main/java/com/bitctrl/geo/graph/tree/package-info.java index 9b68ff6..45fae78 100644 --- a/src/main/java/com/bitctrl/geo/graph/tree/package-info.java +++ b/src/main/java/com/bitctrl/geo/graph/tree/package-info.java @@ -28,4 +28,3 @@ * Modellierung von Baumstrukturen. */ package com.bitctrl.geo.graph.tree; - diff --git a/src/main/java/com/bitctrl/geo/package-info.java b/src/main/java/com/bitctrl/geo/package-info.java index d84e702..122f26e 100644 --- a/src/main/java/com/bitctrl/geo/package-info.java +++ b/src/main/java/com/bitctrl/geo/package-info.java @@ -28,4 +28,3 @@ * Allgemeine geometrische Hilfsklassen ohne Bezug zu einer bestimten GUI. */ package com.bitctrl.geo; - diff --git a/src/main/java/com/bitctrl/graph/AbstractGraph.java b/src/main/java/com/bitctrl/graph/AbstractGraph.java index 1798f89..5170588 100644 --- a/src/main/java/com/bitctrl/graph/AbstractGraph.java +++ b/src/main/java/com/bitctrl/graph/AbstractGraph.java @@ -30,8 +30,7 @@ public boolean insertBogen(final Knoten startKnoten, final Knoten endKnoten) { @Override public void initStuetzBogen(final Knoten wurzel) { if (!getKnoten().contains(wurzel)) { - throw new IllegalArgumentException( - "Der Knoten ist im Netz nicht vorhanden: " + wurzel); + throw new IllegalArgumentException("Der Knoten ist im Netz nicht vorhanden: " + wurzel); } for (final Knoten knoten : getKnoten()) { if (knoten == wurzel) { diff --git a/src/main/java/com/bitctrl/graph/Bogen.java b/src/main/java/com/bitctrl/graph/Bogen.java index abf1e6a..64da112 100644 --- a/src/main/java/com/bitctrl/graph/Bogen.java +++ b/src/main/java/com/bitctrl/graph/Bogen.java @@ -23,8 +23,7 @@ public interface Bogen { /** * Gibt die Länge des Bogens zurück. Die Länge kann auch als Kosten - * interpretiert, die aufgebracht werden müssen, um den Bogen zu - * durchlaufen. + * interpretiert, die aufgebracht werden müssen, um den Bogen zu durchlaufen. * * @return die Bogenlänge. */ diff --git a/src/main/java/com/bitctrl/graph/Graph.java b/src/main/java/com/bitctrl/graph/Graph.java index 8611cb5..ccfc004 100644 --- a/src/main/java/com/bitctrl/graph/Graph.java +++ b/src/main/java/com/bitctrl/graph/Graph.java @@ -18,14 +18,13 @@ public interface Graph { Set getKnoten(); /** - * Fügt einen neuen Knoten in den Graphen ein. Ist der Knoten bereits im - * Graph enthalten passiert nichts. + * Fügt einen neuen Knoten in den Graphen ein. Ist der Knoten bereits im Graph + * enthalten passiert nichts. * *

* Die Methode ist optional. * - * @param knoten - * der neue Knoten. + * @param knoten der neue Knoten. * @return true wenn der Knoten hinzugefügt wurde, sonst * false. */ @@ -42,30 +41,26 @@ public interface Graph { * Fügt einen Bogen in den Graphen ein. Ein Bogen kann abhängig von der * Implementierung des Graphen auch mehrfach hinzugefügt werden. * - * @param startKnoten - * der Startknoten des Bogens. - * @param endKnoten - * der Endknoten des Bogens. + * @param startKnoten der Startknoten des Bogens. + * @param endKnoten der Endknoten des Bogens. * @return true wenn der Bogen hinzugefügt wurde, sonst * false. */ boolean insertBogen(Knoten startKnoten, Knoten endKnoten); /** - * Legt einen Knoten als Wurzel fest. Dabei wird der Stutzbogen aller Knoten - * auf null gesetzt. Nur der Stützbogen der Wurzel wird auf + * Legt einen Knoten als Wurzel fest. Dabei wird der Stutzbogen aller Knoten auf + * null gesetzt. Nur der Stützbogen der Wurzel wird auf * {@link Knoten#WURZEL_BOGEN} gesetzt. * - * @param wurzel - * die Wurzel für das Stützbogengerüst. + * @param wurzel die Wurzel für das Stützbogengerüst. */ void initStuetzBogen(Knoten wurzel); /** * Initialisiert das Potential aller Knoten mit einem bestimmten Wert. * - * @param potential - * der Initialwert für das Knotenpotential. + * @param potential der Initialwert für das Knotenpotential. */ void initPotential(double potential); diff --git a/src/main/java/com/bitctrl/graph/GraphAlgorithm.java b/src/main/java/com/bitctrl/graph/GraphAlgorithm.java index ce5f529..ce46f50 100644 --- a/src/main/java/com/bitctrl/graph/GraphAlgorithm.java +++ b/src/main/java/com/bitctrl/graph/GraphAlgorithm.java @@ -15,27 +15,25 @@ public final class GraphAlgorithm { /** - * Führt eine Breitensuche ausgehend von einem Knoten im Graph durch. Es - * wird ein Stützgerüst erzeugt über das alle erreichbaren Knoten vom - * Startknoten aus enthält. + * Führt eine Breitensuche ausgehend von einem Knoten im Graph durch. Es wird + * ein Stützgerüst erzeugt über das alle erreichbaren Knoten vom Startknoten aus + * enthält. * *

* Ein bereits vorhandenes Gerüst im Graph wird überschrieben! * - * @param graph - * der Graph in dem die Breitensuche durchgeführt werden soll. - * @param startKnoten - * der Startknoten. + * @param graph der Graph in dem die Breitensuche durchgeführt werden + * soll. + * @param startKnoten der Startknoten. */ public static void breitensuche(final Graph graph, final Knoten startKnoten) { if (startKnoten == null) { - throw new IllegalArgumentException( - "Der Startknoten muss ungleich null sein."); + throw new IllegalArgumentException("Der Startknoten muss ungleich null sein."); } graph.initStuetzBogen(startKnoten); - final Queue queue = new LinkedList(); + final Queue queue = new LinkedList<>(); queue.add(startKnoten); Knoten current = queue.poll(); @@ -59,8 +57,7 @@ public static void breitensuche(final Graph graph, final Knoten startKnoten) { public static void dijkstra(final Graph graph, final Knoten startKnoten) { if (startKnoten == null) { - throw new IllegalArgumentException( - "Der Startknoten muss ungleich null sein."); + throw new IllegalArgumentException("Der Startknoten muss ungleich null sein."); } graph.initStuetzBogen(startKnoten); @@ -97,24 +94,22 @@ public static void dijkstra(final Graph graph, final Knoten startKnoten) { * Bestimmt den Pfad von der Wurzel zu einem bestimmten Knoten. * *

- * Setzt voraus, das z. B. mit der Breitensuche ein entsprechendes - * Gerüst erzeugt wurde. + * Setzt voraus, das z. B. mit der Breitensuche ein entsprechendes Gerüst + * erzeugt wurde. * - * @param zielKnoten - * der Zielknoten - * @return der Pfad, eine leere ist, wenn der Zielknoten der Wurzelknoten - * ist oder null, wenn es keinen Pfad gibt. + * @param zielKnoten der Zielknoten + * @return der Pfad, eine leere ist, wenn der Zielknoten der Wurzelknoten ist + * oder null, wenn es keinen Pfad gibt. */ public static List getPfadVonWurzel(final Knoten zielKnoten) { if (zielKnoten.getStuetzBogen() != null) { - return getPfadVonWurzel(zielKnoten, new ArrayList()); + return getPfadVonWurzel(zielKnoten, new ArrayList<>()); } return null; } - private static List getPfadVonWurzel(final Knoten zielKnoten, - final ArrayList pfad) { + private static List getPfadVonWurzel(final Knoten zielKnoten, final ArrayList pfad) { final Bogen stuetzBogen = zielKnoten.getStuetzBogen(); if (stuetzBogen == Knoten.WURZEL_BOGEN) { @@ -128,12 +123,11 @@ private static List getPfadVonWurzel(final Knoten zielKnoten, /** * Bestimmt alle Nachfolgerknoten eines Knotens zurück. * - * @param knoten - * der zu untersuchende Knoten. + * @param knoten der zu untersuchende Knoten. * @return alle Nachfolgerknoten zu denen ein Bogen hinführt. */ public static Set getNachfolger(final Knoten knoten) { - final Set result = new HashSet(); + final Set result = new HashSet<>(); for (final Bogen b : knoten.ausgangsBogenIterator()) { result.add(b.getEndKnoten()); @@ -145,12 +139,11 @@ public static Set getNachfolger(final Knoten knoten) { /** * Bestimmt alle Vorgängerknoten eines Knotens zurück. * - * @param knoten - * der zu untersuchende Knoten. + * @param knoten der zu untersuchende Knoten. * @return alle Vorgängerknoten von denen ein Bogen herführt. */ public static Set getVorgaenger(final Knoten knoten) { - final Set result = new HashSet(); + final Set result = new HashSet<>(); for (final Bogen b : knoten.eingangsBogenIterator()) { result.add(b.getAnfangsKnoten()); diff --git a/src/main/java/com/bitctrl/graph/Knoten.java b/src/main/java/com/bitctrl/graph/Knoten.java index 0900f8b..940ded5 100644 --- a/src/main/java/com/bitctrl/graph/Knoten.java +++ b/src/main/java/com/bitctrl/graph/Knoten.java @@ -11,8 +11,8 @@ public interface Knoten { Bogen WURZEL_BOGEN = new Bogen() { /** - * Als Spezialfall hat der Wurzelbogen weder Anfangs- noch Endknoten. - * Die entsprechenden Methode wirft deswegen eine + * Als Spezialfall hat der Wurzelbogen weder Anfangs- noch Endknoten. Die + * entsprechenden Methode wirft deswegen eine * {@link UnsupportedOperationException}. */ @Override @@ -21,8 +21,8 @@ public Knoten getAnfangsKnoten() { } /** - * Als Spezialfall hat der Wurzelbogen weder Anfangs- noch Endknoten. - * Die entsprechenden Methode wirft deswegen eine + * Als Spezialfall hat der Wurzelbogen weder Anfangs- noch Endknoten. Die + * entsprechenden Methode wirft deswegen eine * {@link UnsupportedOperationException}. */ @Override @@ -48,24 +48,23 @@ public String toString() { }; /** - * Gibt einen Iterator über alle außen inzidenten, also ausgehenden, Bögen - * des Knoten zurück. + * Gibt einen Iterator über alle außen inzidenten, also ausgehenden, Bögen des + * Knoten zurück. * * @return einen Ausgangsbogeniterator. */ Iterable ausgangsBogenIterator(); /** - * Gibt einen Iterator über alle innen inzidenten, also eingehenden, Bögen - * des Knoten zurück. + * Gibt einen Iterator über alle innen inzidenten, also eingehenden, Bögen des + * Knoten zurück. * * @return einen Eingangsbogeniterator. */ Iterable eingangsBogenIterator(); /** - * Gibt einen Iterator über alle überhaupt inzidenten Bögen des Knoten - * zurück. + * Gibt einen Iterator über alle überhaupt inzidenten Bögen des Knoten zurück. * * @return einen Iterator über die inzidenten Bögen. */ @@ -74,18 +73,16 @@ public String toString() { /** * Gibt den Stützbogen dieses Knotens zurück. * - * @return der Stüzbogen oder null, wenn es keinen Stützbogen - * gibt. + * @return der Stüzbogen oder null, wenn es keinen Stützbogen gibt. */ Bogen getStuetzBogen(); /** * Legt den Stützbogen des Knotens fest. * - * @param stuetzBogen - * ein Bogen, der zu diesen Knoten führt, der - * {@link #WURZEL_BOGEN} oder null, um keinen - * Stützbogen festzulegen. + * @param stuetzBogen ein Bogen, der zu diesen Knoten führt, der + * {@link #WURZEL_BOGEN} oder null, um keinen + * Stützbogen festzulegen. */ void setStuetzBogen(final Bogen stuetzBogen); @@ -101,8 +98,7 @@ public String toString() { * Legt das Potential des Knotens fest. Das Potential kann z. B. als * Entfernung zum Starknoten interpretriert werden. * - * @param potential - * das Knotenpotential. + * @param potential das Knotenpotential. */ void setPotential(double potential); diff --git a/src/main/java/com/bitctrl/i18n/MessageHandler.java b/src/main/java/com/bitctrl/i18n/MessageHandler.java index 535ef7f..69388b5 100644 --- a/src/main/java/com/bitctrl/i18n/MessageHandler.java +++ b/src/main/java/com/bitctrl/i18n/MessageHandler.java @@ -48,9 +48,8 @@ public interface MessageHandler { * Gibt das Resource-Bundle für diesen Message-Handler in der entsprechenden * Sprache zurück. * - * @param locale - * Die Sprache in der das Resource-Bundle zurückgegeben werden - * soll. + * @param locale Die Sprache in der das Resource-Bundle zurückgegeben werden + * soll. * * @return Das Resource-Bundle. */ @@ -67,11 +66,12 @@ default ResourceBundle getResourceBundle(Locale locale) { String name(); /** - * Gibt die Nachricht als Text zurück. Eventuell vorhandene Platzhalter - * werden nicht ersetzt und bleiben erhalten. + * Gibt die Nachricht als Text zurück. Eventuell vorhandene Platzhalter werden + * nicht ersetzt und bleiben erhalten. * * @return die Nachricht. */ + @Override String toString(); } diff --git a/src/main/java/com/bitctrl/i18n/MessageHandler2.java b/src/main/java/com/bitctrl/i18n/MessageHandler2.java index f498450..4545a98 100644 --- a/src/main/java/com/bitctrl/i18n/MessageHandler2.java +++ b/src/main/java/com/bitctrl/i18n/MessageHandler2.java @@ -18,12 +18,12 @@ public interface MessageHandler2 extends MessageHandler { * Gibt das Resource-Bundle für diesen Message-Handler in der entsprechenden * Sprache zurück. * - * @param locale - * Die Sprache in der das Resource-Bundle zurückgegeben werden - * soll. + * @param locale Die Sprache in der das Resource-Bundle zurückgegeben werden + * soll. * * @return Das Resource-Bundle. */ + @Override ResourceBundle getResourceBundle(Locale locale); } diff --git a/src/main/java/com/bitctrl/i18n/Messages.java b/src/main/java/com/bitctrl/i18n/Messages.java index d561371..0aafd15 100644 --- a/src/main/java/com/bitctrl/i18n/Messages.java +++ b/src/main/java/com/bitctrl/i18n/Messages.java @@ -37,20 +37,17 @@ public final class Messages { /** - * Ersetzt in einer Meldung die enthaltenen Variablen und gibt sie - * lokalisiert zurück. Eine Meldung mit Variablen hat die Form text {0} text {1}" - * . {...} wird durch den Inhalt der übergebenen Argumente - * ersetzt. + * Ersetzt in einer Meldung die enthaltenen Variablen und gibt sie lokalisiert + * zurück. Eine Meldung mit Variablen hat die Form + * text {0} text {1}" . {...} wird durch den Inhalt + * der übergebenen Argumente ersetzt. * - * @param key - * der Typ der Meldung. - * @param arguments - * die Argumente, mit denen die Variaben in der Meldung ersetzt - * werden sollen. + * @param key der Typ der Meldung. + * @param arguments die Argumente, mit denen die Variaben in der Meldung ersetzt + * werden sollen. * @return die lokalisierte Meldung. */ - public static String get(final MessageHandler key, - final Object... arguments) { + public static String get(final MessageHandler key, final Object... arguments) { final String txt = key.getResourceBundle().getString(key.name()); if (arguments != null) { @@ -61,22 +58,18 @@ public static String get(final MessageHandler key, } /** - * Ersetzt in einer Meldung die enthaltenen Variablen und gibt sie - * lokalisiert zurück. Eine Meldung mit Variablen hat die Form text {0} text {1}" - * . {...} wird durch den Inhalt der übergebenen Argumente - * ersetzt. + * Ersetzt in einer Meldung die enthaltenen Variablen und gibt sie lokalisiert + * zurück. Eine Meldung mit Variablen hat die Form + * text {0} text {1}" . {...} wird durch den Inhalt + * der übergebenen Argumente ersetzt. * - * @param key - * der Typ der Meldung. - * @param locale - * die Sprache der Meldung. - * @param arguments - * die Argumente, mit denen die Variaben in der Meldung ersetzt - * werden sollen. + * @param key der Typ der Meldung. + * @param locale die Sprache der Meldung. + * @param arguments die Argumente, mit denen die Variaben in der Meldung ersetzt + * werden sollen. * @return die lokalisierte Meldung. */ - public static String get(final MessageHandler2 key, final Locale locale, - final Object... arguments) { + public static String get(final MessageHandler2 key, final Locale locale, final Object... arguments) { final String txt = key.getResourceBundle(locale).getString(key.name()); if (arguments != null) { diff --git a/src/main/java/com/bitctrl/i18n/package-info.java b/src/main/java/com/bitctrl/i18n/package-info.java index cf82c72..b1da5d7 100644 --- a/src/main/java/com/bitctrl/i18n/package-info.java +++ b/src/main/java/com/bitctrl/i18n/package-info.java @@ -28,4 +28,3 @@ * Klassen für Internationalisierung (i18n). */ package com.bitctrl.i18n; - diff --git a/src/main/java/com/bitctrl/math/MathTools.java b/src/main/java/com/bitctrl/math/MathTools.java index 6682cc8..6fd8059 100644 --- a/src/main/java/com/bitctrl/math/MathTools.java +++ b/src/main/java/com/bitctrl/math/MathTools.java @@ -37,16 +37,12 @@ public final class MathTools { * Testet ob die zwei Werte ungefähr gleich sind. Die maximal erlaubte * Abweichung wird als dritter Parameter angegeben. * - * @param a - * ein Wert. - * @param b - * ein zweiter Wert. - * @param precision - * die maximal erlaubte Abweichung, z. B. 0.001. + * @param a ein Wert. + * @param b ein zweiter Wert. + * @param precision die maximal erlaubte Abweichung, z. B. 0.001. * @return {@code true}, wenn die beiden Werte ungefähr gleich sind. */ - public static boolean ca(final double a, final double b, - final double precision) { + public static boolean ca(final double a, final double b, final double precision) { if (Math.abs(a - b) < precision) { return true; } @@ -58,12 +54,9 @@ public static boolean ca(final double a, final double b, * Testet ob die zwei Werte ungefähr gleich sind. Die maximal erlaubte * Abweichung wird als dritter Parameter angegeben. * - * @param a - * ein Wert. - * @param b - * ein zweiter Wert. - * @param precision - * die maximal erlaubte Abweichung, z. B. 0.001. + * @param a ein Wert. + * @param b ein zweiter Wert. + * @param precision die maximal erlaubte Abweichung, z. B. 0.001. * @return {@code true}, wenn die beiden Werte ungefähr gleich sind. */ public static boolean ca(final float a, final float b, final float precision) { diff --git a/src/main/java/com/bitctrl/math/SkalierungHelper.java b/src/main/java/com/bitctrl/math/SkalierungHelper.java index e0b68b6..0eed7f2 100644 --- a/src/main/java/com/bitctrl/math/SkalierungHelper.java +++ b/src/main/java/com/bitctrl/math/SkalierungHelper.java @@ -82,18 +82,15 @@ private SkalierungHelper() { /** * Skaliert und formatiert einen Wert. * - * @param unscaledValue - * Unskalierter Wert - * @param conversionFactor - * Faktor, mit dem der unskalierte Wert multipliziert wird. + * @param unscaledValue Unskalierter Wert + * @param conversionFactor Faktor, mit dem der unskalierte Wert multipliziert + * wird. * @return der Text */ - public String format(final double unscaledValue, - final double conversionFactor) { + public String format(final double unscaledValue, final double conversionFactor) { int precision = 0; synchronized (integerNumberFormat) { - final String formatted = precesionTestFormat - .format(conversionFactor); + final String formatted = precesionTestFormat.format(conversionFactor); final int kommaPosition = formatted.lastIndexOf('.'); if (kommaPosition >= 0) { precision = formatted.length() - kommaPosition - 1; diff --git a/src/main/java/com/bitctrl/math/package-info.java b/src/main/java/com/bitctrl/math/package-info.java index ad2b94e..f4cc439 100644 --- a/src/main/java/com/bitctrl/math/package-info.java +++ b/src/main/java/com/bitctrl/math/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.math; - diff --git a/src/main/java/com/bitctrl/messages/DynamicMessages.java b/src/main/java/com/bitctrl/messages/DynamicMessages.java index 84c7fa4..ad0f251 100644 --- a/src/main/java/com/bitctrl/messages/DynamicMessages.java +++ b/src/main/java/com/bitctrl/messages/DynamicMessages.java @@ -41,18 +41,16 @@ private DynamicMessages(final ResourceBundle resourceBundle) { this.resourceBundle = resourceBundle; } - public static DynamicMessages getInstance( - final ResourceBundle resourceBundle) { + public static DynamicMessages getInstance(final ResourceBundle resourceBundle) { return new DynamicMessages(resourceBundle); } /** * Liest den Wert zu einem Schluessel aus der Resource. * - * @param key - * der Schluessel - * @return Wenn der Schluessel nicht gefunden wird, gibt die Funktion den - * String "!Schluessel!" zurueck. + * @param key der Schluessel + * @return Wenn der Schluessel nicht gefunden wird, gibt die Funktion den String + * "!Schluessel!" zurueck. */ public String getString(final String key) { try { @@ -65,8 +63,7 @@ public String getString(final String key) { /** * Liest den Wert zu einem Schluessel aus der Resource. * - * @param key - * der Schluessel + * @param key der Schluessel * @return Wenn der Schluessel nicht gefunden wird, gibt die Funktion * null zurueck. */ diff --git a/src/main/java/com/bitctrl/model/ModelElement.java b/src/main/java/com/bitctrl/model/ModelElement.java index 8267028..522fbfe 100644 --- a/src/main/java/com/bitctrl/model/ModelElement.java +++ b/src/main/java/com/bitctrl/model/ModelElement.java @@ -6,7 +6,7 @@ import java.io.ObjectInputStream; import java.io.Serializable; -import javax.xml.bind.annotation.XmlTransient; +import jakarta.xml.bind.annotation.XmlTransient; /** * Basisklasse für Modellklassen mit Property Change Support. Modellobjekte sind @@ -20,97 +20,78 @@ public class ModelElement implements Serializable { private static final long serialVersionUID = 1L; @XmlTransient - private transient PropertyChangeSupport pcsDelegate = new PropertyChangeSupport( - this); + private transient PropertyChangeSupport pcsDelegate = new PropertyChangeSupport(this); /** * Registriert einen Property Listener für alle bound properties. * - * @param listener - * der zu registrierende Listener. + * @param listener der zu registrierende Listener. */ public void addPropertyChangeListener(final PropertyChangeListener listener) { pcsDelegate.addPropertyChangeListener(listener); } /** - * Registriert einen Property Listener für eine einzelne - * bound property. + * Registriert einen Property Listener für eine einzelne bound + * property. * - * @param propertyName - * der Name der Property, die �berwacht werden soll. - * @param listener - * der zu registrierende Listener. + * @param propertyName der Name der Property, die �berwacht werden soll. + * @param listener der zu registrierende Listener. */ - public void addPropertyChangeListener(final String propertyName, - final PropertyChangeListener listener) { + public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener) { pcsDelegate.addPropertyChangeListener(propertyName, listener); } /** - * Entfernt einen registrierten Property Listener für alle - * bound properties. + * Entfernt einen registrierten Property Listener für alle bound + * properties. * - * @param listener - * der zu entfernende Listener. + * @param listener der zu entfernende Listener. */ - public void removePropertyChangeListener( - final PropertyChangeListener listener) { + public void removePropertyChangeListener(final PropertyChangeListener listener) { pcsDelegate.removePropertyChangeListener(listener); } /** - * Entfernt einen registrierten Property Listener für eine einzelne - * bound property. + * Entfernt einen registrierten Property Listener für eine einzelne bound + * property. * - * @param propertyName - * der Name der Property, die nicht mehr überwacht werden soll. - * @param listener - * der zu entfernende Listener. + * @param propertyName der Name der Property, die nicht mehr überwacht werden + * soll. + * @param listener der zu entfernende Listener. */ - public void removePropertyChangeListener(final String propertyName, - final PropertyChangeListener listener) { + public void removePropertyChangeListener(final String propertyName, final PropertyChangeListener listener) { pcsDelegate.removePropertyChangeListener(propertyName, listener); } /** * Feuert ein Event für eine bound property. * - * @param propertyName - * der Name der Property die sich geändert hat. - * @param oldValue - * der alte Wert oder null, wenn der alte Wert nicht - * bekannt ist. - * @param newValue - * der neue Wert. + * @param propertyName der Name der Property die sich geändert hat. + * @param oldValue der alte Wert oder null, wenn der alte Wert + * nicht bekannt ist. + * @param newValue der neue Wert. */ - protected synchronized void firePropertyChanged(final String propertyName, - final Object oldValue, final Object newValue) { + protected synchronized void firePropertyChanged(final String propertyName, final Object oldValue, + final Object newValue) { pcsDelegate.firePropertyChange(propertyName, oldValue, newValue); } /** * Feuert ein Event für eine indexed bound property. * - * @param propertyName - * der Name der Property die sich geändert hat. - * @param index - * der Index des Elements das sich geändert hat. - * @param oldValue - * der alte Wert oder null, wenn der alte Wert nicht - * bekannt ist. - * @param newValue - * der neue Wert. + * @param propertyName der Name der Property die sich geändert hat. + * @param index der Index des Elements das sich geändert hat. + * @param oldValue der alte Wert oder null, wenn der alte Wert + * nicht bekannt ist. + * @param newValue der neue Wert. */ - protected synchronized void fireIndexedPropertyChanged( - final String propertyName, final int index, final Object oldValue, - final Object newValue) { - pcsDelegate.fireIndexedPropertyChange(propertyName, index, oldValue, - newValue); + protected synchronized void fireIndexedPropertyChanged(final String propertyName, final int index, + final Object oldValue, final Object newValue) { + pcsDelegate.fireIndexedPropertyChange(propertyName, index, oldValue, newValue); } - private void readObject(final ObjectInputStream in) throws IOException, - ClassNotFoundException { + private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); pcsDelegate = new PropertyChangeSupport(this); } diff --git a/src/main/java/com/bitctrl/model/NamedObject.java b/src/main/java/com/bitctrl/model/NamedObject.java index c2a8934..f90019e 100644 --- a/src/main/java/com/bitctrl/model/NamedObject.java +++ b/src/main/java/com/bitctrl/model/NamedObject.java @@ -32,8 +32,7 @@ public String getName() { *

* bound property. * - * @param name - * der neue Objektname. + * @param name der neue Objektname. * */ public void setName(final String name) { diff --git a/src/main/java/com/bitctrl/modell/AbstractDAO.java b/src/main/java/com/bitctrl/modell/AbstractDAO.java index fe2c8ee..ed724d3 100644 --- a/src/main/java/com/bitctrl/modell/AbstractDAO.java +++ b/src/main/java/com/bitctrl/modell/AbstractDAO.java @@ -37,11 +37,10 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der Datenobjekte. - * @param - * der Schlüssel für die Datenobjekte. + * @param der Typ der Datenobjekte. + * @param der Schlüssel für die Datenobjekte. */ +@Deprecated(since = "3.0.0", forRemoval = true) public abstract class AbstractDAO implements DAO { private final EventListenerList listenerList = new EventListenerList(); @@ -51,8 +50,7 @@ public abstract class AbstractDAO implements DAO { private OrderDAOCriterion[] defaultOrder; /** - * Initialisiert die DAO mit dem Typ der DAO-Elemente und deren - * Schlüsseltyp. + * Initialisiert die DAO mit dem Typ der DAO-Elemente und deren Schlüsseltyp. */ @SuppressWarnings("unchecked") protected AbstractDAO() { @@ -61,14 +59,17 @@ protected AbstractDAO() { keyClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1]; } + @Override public Class getPersistentClass() { return persistentClass; } + @Override public Class getKeyClass() { return keyClass; } + @Override public OrderDAOCriterion[] getDefaultOrder() { return defaultOrder != null ? defaultOrder : new OrderDAOCriterion[0]; } @@ -76,17 +77,18 @@ public OrderDAOCriterion[] getDefaultOrder() { /** * Legt die Defaultsortierung der Daten in der DAO fest. * - * @param defaultOrder - * die Defaultsortierung der DAO-Daten. + * @param defaultOrder die Defaultsortierung der DAO-Daten. */ protected void setDefaultOrder(final OrderDAOCriterion... defaultOrder) { this.defaultOrder = defaultOrder; } + @Override public void addDAOListener(final DAOListener l) { listenerList.add(DAOListener.class, l); } + @Override public void removeDAOListener(final DAOListener l) { listenerList.remove(DAOListener.class, l); } @@ -103,10 +105,8 @@ protected synchronized void fireDataChanged() { * Benachrichtigt alle angemeldeten Listener über Datenänderungen. Muss nach * einer Änderung der Daten der DAO aufgerufen werden. * - * @param type - * der Typ der Aktualisierung. - * @param object - * das aktualisierte Objekt. + * @param type der Typ der Aktualisierung. + * @param object das aktualisierte Objekt. */ protected synchronized void fireDataChanged(final DAOEvent.Type type, final Object object) { DAOEvent e; diff --git a/src/main/java/com/bitctrl/modell/AbstractDAOFactory.java b/src/main/java/com/bitctrl/modell/AbstractDAOFactory.java index be21e75..eaf93d3 100644 --- a/src/main/java/com/bitctrl/modell/AbstractDAOFactory.java +++ b/src/main/java/com/bitctrl/modell/AbstractDAOFactory.java @@ -34,19 +34,21 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public abstract class AbstractDAOFactory implements DAOFactory { - private final Map, DAO> daoCache = new HashMap, DAO>(); + private final Map, DAO> daoCache = new HashMap<>(); /** * {@inheritDoc} * - * Gibt falls möglich die gesuchte DAO aus dem Cache zurück. Falls die - * gesuchte DAO noch nicht im Cache vorliegt, wird sie mit - * {@link #doFindDAO(Class)} bestimmt. + * Gibt falls möglich die gesuchte DAO aus dem Cache zurück. Falls die gesuchte + * DAO noch nicht im Cache vorliegt, wird sie mit {@link #doFindDAO(Class)} + * bestimmt. * * @see #doFindDAO(Class) */ + @Override @SuppressWarnings("unchecked") public DAO findDAO(final Class type) { if (!daoCache.containsKey(type)) { @@ -58,12 +60,10 @@ public abstract class AbstractDAOFactory implements DAOFactory { /** * Wird von {@link #findDAO(Class)} aus deligiert. * - * @param - * der Typ der DAO. - * @param type - * die Typklasse der DAO-Objekte. - * @return die DAO zum Typ oder {@code null}, wenn keine passende DAO - * gefunden werden konnte. + * @param der Typ der DAO. + * @param type die Typklasse der DAO-Objekte. + * @return die DAO zum Typ oder {@code null}, wenn keine passende DAO gefunden + * werden konnte. * @see #findDAO(Class) */ protected abstract DAO doFindDAO(Class type); @@ -71,9 +71,9 @@ public abstract class AbstractDAOFactory implements DAOFactory { /** * {@inheritDoc} * - * Prüft ob {@link #findDAO(Class)} einen Wert ungleich {@code null} - * zurückgibt. + * Prüft ob {@link #findDAO(Class)} einen Wert ungleich {@code null} zurückgibt. */ + @Override public boolean isDataObject(final Object object) { return findDAO(object.getClass()) != null; } diff --git a/src/main/java/com/bitctrl/modell/AbstractTicketDAO.java b/src/main/java/com/bitctrl/modell/AbstractTicketDAO.java index e0481fb..0b9dba0 100644 --- a/src/main/java/com/bitctrl/modell/AbstractTicketDAO.java +++ b/src/main/java/com/bitctrl/modell/AbstractTicketDAO.java @@ -31,15 +31,15 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der Datenobjekte. - * @param - * der Schlüssel für die Datenobjekte. + * @param der Typ der Datenobjekte. + * @param der Schlüssel für die Datenobjekte. */ +@Deprecated(since = "3.0.0", forRemoval = true) public abstract class AbstractTicketDAO extends AbstractDAO implements TicketDAO { private DAOTicket ticket; + @Override public DAOTicket getTicket() { return ticket; } @@ -50,8 +50,7 @@ public DAOTicket getTicket() { * Hinweis: Das Ticket kann nur einmal gesetzt und dann nicht mehr * verändert werden. * - * @param ticket - * das Ticket, welches die DAO verwendet soll. + * @param ticket das Ticket, welches die DAO verwendet soll. */ public void setTicket(final DAOTicket ticket) { if (this.ticket != null) { diff --git a/src/main/java/com/bitctrl/modell/AbstractTicketDAOFactory.java b/src/main/java/com/bitctrl/modell/AbstractTicketDAOFactory.java index e3019a0..bbc780c 100644 --- a/src/main/java/com/bitctrl/modell/AbstractTicketDAOFactory.java +++ b/src/main/java/com/bitctrl/modell/AbstractTicketDAOFactory.java @@ -31,11 +31,12 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ -public abstract class AbstractTicketDAOFactory extends AbstractDAOFactory - implements TicketDAOFactory { +@Deprecated(since = "3.0.0", forRemoval = true) +public abstract class AbstractTicketDAOFactory extends AbstractDAOFactory implements TicketDAOFactory { private DAOTicket ticket; + @Override public DAOTicket getTicket() { return ticket; } @@ -46,8 +47,7 @@ public DAOTicket getTicket() { * Hinweis: Das Ticket kann nur einmal gesetzt und dann nicht mehr * verändert werden. * - * @param ticket - * das Ticket, welches die Factory verwendet soll. + * @param ticket das Ticket, welches die Factory verwendet soll. */ public void setTicket(final DAOTicket ticket) { if (this.ticket != null) { diff --git a/src/main/java/com/bitctrl/modell/DAO.java b/src/main/java/com/bitctrl/modell/DAO.java index c986999..884329a 100644 --- a/src/main/java/com/bitctrl/modell/DAO.java +++ b/src/main/java/com/bitctrl/modell/DAO.java @@ -38,11 +38,10 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der Datenobjekte. - * @param - * der Schlüssel für die Datenobjekte. + * @param der Typ der Datenobjekte. + * @param der Schlüssel für die Datenobjekte. */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAO { /** @@ -63,16 +62,14 @@ public interface DAO { * Registriert einen Listener, der über Änderungen am DAO informiert werden * möchte. * - * @param l - * ein DAO-Listener. + * @param l ein DAO-Listener. */ void addDAOListener(DAOListener l); /** * Deregistiert einen Listener. * - * @param l - * ein DAO-Listener. + * @param l ein DAO-Listener. */ void removeDAOListener(DAOListener l); @@ -80,10 +77,8 @@ public interface DAO { * Ruft alle Objekt von der Datenquelle ab. * * @return die Liste der vorhandenen Objekte. - * @param criteria - * die DAO Kriterien, darf nicht {@code null} sein. - * @throws DAOException - * bei einem Fehler. + * @param criteria die DAO Kriterien, darf nicht {@code null} sein. + * @throws DAOException bei einem Fehler. */ List retrieve(DAOCriterion... criteria) throws DAOException; @@ -91,76 +86,64 @@ public interface DAO { * Fügt der Datenquelle ein Objekt hinzu. *

* Hinweis: Die Datenquelle kann das Objekt beim Hinzufügen ändern, - * z. B. die Id ausfüllen. Deshalb darf nach dem Hinzufügen nicht mit - * dem übergebenen Objekt weitergearbeitet werden, sondern es muss das + * z. B. die Id ausfüllen. Deshalb darf nach dem Hinzufügen nicht mit dem + * übergebenen Objekt weitergearbeitet werden, sondern es muss das * zurückgegebene Objekt weiterverwendet werden. * - * @param object - * ein Objekt mit Schlüssel. + * @param object ein Objekt mit Schlüssel. * @return das hinzugefügte Objekt. - * @throws DAOException - * bei einem Fehler. + * @throws DAOException bei einem Fehler. */ T add(T object) throws DAOException; /** * Aktualisiert ein vorhandenes Objekt der Datenquelle. * - * @param object - * ein Objekt mit Schlüssel. - * @throws DAOException - * bei einem Fehler. + * @param object ein Objekt mit Schlüssel. + * @throws DAOException bei einem Fehler. */ void update(T object) throws DAOException; /** - * Aktualisiert ein vorhandenes Objekt der Datenquelle. Zweite Objectinstanz - * in der Session darf existieren + * Aktualisiert ein vorhandenes Objekt der Datenquelle. Zweite Objectinstanz in + * der Session darf existieren * - * @param object - * ein Objekt mit Schlüssel. - * @throws DAOException - * bei einem Fehler. + * @param object ein Objekt mit Schlüssel. + * @throws DAOException bei einem Fehler. */ void merge(T object) throws DAOException; /** - * Löscht das angegebene Objekt aus der Datenquelle. Das betroffene Objekt - * wird anhand seines Schlüssel identifiziert. + * Löscht das angegebene Objekt aus der Datenquelle. Das betroffene Objekt wird + * anhand seines Schlüssel identifiziert. * - * @param object - * ein Objekt mit Schlüssel. - * @throws DAOException - * bei einem Fehler. + * @param object ein Objekt mit Schlüssel. + * @throws DAOException bei einem Fehler. */ void delete(T object) throws DAOException; /** * Sucht das Objekt, welches zu dem angegebenen Schlüssel passt. * - * @param key - * ein Schlüssel. + * @param key ein Schlüssel. * @return das Objekt auf das der Schlüssel passt. - * @throws DAOException - * bei einem Fehler. + * @throws DAOException bei einem Fehler. */ T findById(ID key) throws DAOException; /** - * Gibt die erwartete Anzahl Datenobjekte zurück. Wird kein Criteria - * angegeben, wird die Gesamtanzahl zurückgegeben. + * Gibt die erwartete Anzahl Datenobjekte zurück. Wird kein Criteria angegeben, + * wird die Gesamtanzahl zurückgegeben. * - * @param criteria - * beliebige DAO-Kriterien. + * @param criteria beliebige DAO-Kriterien. * @return die Anzahl gemäß der übergebenen Kriterien. - * @throws DAOException - * bei einem Fehler. + * @throws DAOException bei einem Fehler. */ long count(DAOCriterion... criteria) throws DAOException; /** - * Gibt die Standardsortierung der Datensätze zurück. Kann leer sein, wenn - * es keine sinnvolle Sortierung gibt. + * Gibt die Standardsortierung der Datensätze zurück. Kann leer sein, wenn es + * keine sinnvolle Sortierung gibt. * * @return die Standardsortierung oder ein leeres Array. Niemals * null. @@ -168,15 +151,13 @@ public interface DAO { OrderDAOCriterion[] getDefaultOrder(); /** - * Konvertiert die uebergebenen {@link DAOCriterion}s in ein Hibernate- - * Criteria Objekt. + * Konvertiert die uebergebenen {@link DAOCriterion}s in ein Hibernate- Criteria + * Objekt. * - * @param isCount - * true wenn es sich bei der Abfrage um ein - * {@link #count(DAOCriterion...)} handelt, sonst - * false. - * @param daoCriterias - * Die {@link DAOCriterion}s. + * @param isCount true wenn es sich bei der Abfrage um ein + * {@link #count(DAOCriterion...)} handelt, sonst + * false. + * @param daoCriterias Die {@link DAOCriterion}s. * @return Das Hibernate-Criteria Object. */ diff --git a/src/main/java/com/bitctrl/modell/DAOEvent.java b/src/main/java/com/bitctrl/modell/DAOEvent.java index a282e29..de2d1c9 100644 --- a/src/main/java/com/bitctrl/modell/DAOEvent.java +++ b/src/main/java/com/bitctrl/modell/DAOEvent.java @@ -33,12 +33,13 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public class DAOEvent extends EventObject { private static final long serialVersionUID = 1; /** Die Typen einer Änderung. */ - public static enum Type { + public enum Type { /** Hinzufügen. */ Add, @@ -50,9 +51,9 @@ public static enum Type { Delete, /** - * Unbekannte Änderung. Dieser Typ kann verwendet werden, wenn eine DAO - * die Aktualisierung nicht unterscheiden kann, z. B. wenn sich - * alle Daten der Quelle geändert haben. + * Unbekannte Änderung. Dieser Typ kann verwendet werden, wenn eine DAO die + * Aktualisierung nicht unterscheiden kann, z. B. wenn sich alle Daten der + * Quelle geändert haben. */ Unknown; @@ -64,14 +65,11 @@ public static enum Type { /** * Erzeugt ein neues Event. * - * @param source - * die Quelle des Events, in der Regel eine DAO. - * @param type - * der Typ des Events. - * @param object - * das aktualiserte Objekt. - * @deprecated Der Parameter source hat den falschen Typ, - * besser den anderen Konstruktor verwenden!! + * @param source die Quelle des Events, in der Regel eine DAO. + * @param type der Typ des Events. + * @param object das aktualiserte Objekt. + * @deprecated Der Parameter source hat den falschen Typ, besser + * den anderen Konstruktor verwenden!! */ @Deprecated public DAOEvent(final Object source, final Type type, final Object object) { @@ -87,12 +85,9 @@ public DAOEvent(final Object source, final Type type, final Object object) { /** * Erzeugt ein neues Event. * - * @param source - * die Quelle des Events, in der Regel eine DAO. - * @param type - * der Typ des Events. - * @param object - * das aktualiserte Objekt. + * @param source die Quelle des Events, in der Regel eine DAO. + * @param type der Typ des Events. + * @param object das aktualiserte Objekt. */ public DAOEvent(final DAO source, final Type type, final Object object) { super(source); @@ -119,8 +114,8 @@ public Type getType() { } /** - * Gibt das aktualisierte Objekt zurück. Für den Typ {@link Type#Unknown} - * kann der Rückgabewert {@code null} sein. + * Gibt das aktualisierte Objekt zurück. Für den Typ {@link Type#Unknown} kann + * der Rückgabewert {@code null} sein. * * @return das aktualisierte Objekt. */ diff --git a/src/main/java/com/bitctrl/modell/DAOException.java b/src/main/java/com/bitctrl/modell/DAOException.java index 491fcea..5e1f932 100644 --- a/src/main/java/com/bitctrl/modell/DAOException.java +++ b/src/main/java/com/bitctrl/modell/DAOException.java @@ -33,6 +33,7 @@ * * @author BitCtrl Systems GmbH, Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public class DAOException extends Exception { private static final long serialVersionUID = 1L; @@ -47,8 +48,7 @@ public DAOException() { /** * Initialisiert die Exception. * - * @param message - * ein Meldungstext. + * @param message ein Meldungstext. */ public DAOException(final String message) { super(message); @@ -57,8 +57,7 @@ public DAOException(final String message) { /** * Initialisiert die Exception. * - * @param cause - * der Grund für die Exception. + * @param cause der Grund für die Exception. */ public DAOException(final Throwable cause) { super(cause); @@ -67,10 +66,8 @@ public DAOException(final Throwable cause) { /** * Initialisiert die Exception. * - * @param message - * ein Meldungstext. - * @param cause - * der Grund für die Exception. + * @param message ein Meldungstext. + * @param cause der Grund für die Exception. */ public DAOException(final String message, final Throwable cause) { super(message, cause); diff --git a/src/main/java/com/bitctrl/modell/DAOFactory.java b/src/main/java/com/bitctrl/modell/DAOFactory.java index 9af4ebc..b5d5555 100644 --- a/src/main/java/com/bitctrl/modell/DAOFactory.java +++ b/src/main/java/com/bitctrl/modell/DAOFactory.java @@ -31,25 +31,23 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOFactory { /** * Sucht anhand der Klasse die dazugehörige DAO. * - * @param - * der Typ der DAO. - * @param type - * die Typklasse der DAO-Objekte. - * @return die DAO zum Typ oder {@code null}, wenn keine passende DAO - * gefunden werden konnte. + * @param der Typ der DAO. + * @param type die Typklasse der DAO-Objekte. + * @return die DAO zum Typ oder {@code null}, wenn keine passende DAO gefunden + * werden konnte. */ DAO findDAO(Class type); /** * Prüft ob zu einem Objekt eine DAO existiert. * - * @param object - * ein beliebiges Objekt. + * @param object ein beliebiges Objekt. * @return {@code true}, wenn es zu dem Objekt eine DAO gibt. */ boolean isDataObject(Object object); diff --git a/src/main/java/com/bitctrl/modell/DAOListener.java b/src/main/java/com/bitctrl/modell/DAOListener.java index 3f910d0..a95bc38 100644 --- a/src/main/java/com/bitctrl/modell/DAOListener.java +++ b/src/main/java/com/bitctrl/modell/DAOListener.java @@ -33,13 +33,13 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOListener extends EventListener { /** * Wird aufgerufen, wenn sich die Daten eines DAO geändert haben. * - * @param e - * das eingetroffene Event. + * @param e das eingetroffene Event. */ void dataChanged(DAOEvent e); diff --git a/src/main/java/com/bitctrl/modell/DAOTicket.java b/src/main/java/com/bitctrl/modell/DAOTicket.java index 370c073..8ec9036 100644 --- a/src/main/java/com/bitctrl/modell/DAOTicket.java +++ b/src/main/java/com/bitctrl/modell/DAOTicket.java @@ -33,11 +33,12 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOTicket { /** - * Gibt die DAO-Factory zurück, die exklusiv für dieses Ticket verwendet - * werden muss. + * Gibt die DAO-Factory zurück, die exklusiv für dieses Ticket verwendet werden + * muss. * * @return die DAO-Factory für dieses Ticket. */ @@ -46,10 +47,8 @@ public interface DAOTicket { /** * Import ein Objekt, welches in einem anderen Ticket angelegt wurde. * - * @param object - * ein "fremdes" Objekt. - * @throws DAOException - * bei einem Fehler. + * @param object ein "fremdes" Objekt. + * @throws DAOException bei einem Fehler. */ void importFromOtherTicket(final Object object) throws DAOException; @@ -57,13 +56,10 @@ public interface DAOTicket { * Sucht das übergebene Objekt in der Session des Tickets. Der Zustand des * übergebenen Objekts wird dann in das der Ticketsession kopiert. * - * @param - * der Typ des Objekts um Rückgabewert anzupassen. * - * @param object - * ein Objekt. + * @param der Typ des Objekts um Rückgabewert anzupassen. * + * @param object ein Objekt. * @return das Objekt auf das der Schlüssel passt. - * @throws DAOException - * bei einem Fehler. + * @throws DAOException bei einem Fehler. */ T merge(final T object) throws DAOException; @@ -83,19 +79,16 @@ public interface DAOTicket { * Startet eine neue Transaktion. Alle nachfolgenden Operationen werden in * dieser Transaktion ausgeführt. * - * @throws DAOException - * bei einem Fehler beim Anlegend er Transaktion. + * @throws DAOException bei einem Fehler beim Anlegend er Transaktion. * @see #commitTransaction() * @see #rollbackTransaction() */ void beginTransaction() throws DAOException; /** - * Beendet die aktuelle Transaktion und schreibt alle gepufferten - * Operationen. + * Beendet die aktuelle Transaktion und schreibt alle gepufferten Operationen. * - * @throws DAOException - * bei einem Fehler beim Ausführen der Transaktion. + * @throws DAOException bei einem Fehler beim Ausführen der Transaktion. * @see #beginTransaction() * @see #rollbackTransaction() */ @@ -104,8 +97,7 @@ public interface DAOTicket { /** * Führt ein Rollback auf der aktuellen Transaktion aus. * - * @throws DAOException - * bei einem Fehler beim Rollback der Transaktion + * @throws DAOException bei einem Fehler beim Rollback der Transaktion * @see #beginTransaction() * @see #commitTransaction() */ diff --git a/src/main/java/com/bitctrl/modell/TicketDAO.java b/src/main/java/com/bitctrl/modell/TicketDAO.java index ceb547e..9a94d28 100644 --- a/src/main/java/com/bitctrl/modell/TicketDAO.java +++ b/src/main/java/com/bitctrl/modell/TicketDAO.java @@ -33,17 +33,15 @@ * * @author BitCtrl Systems GmbH, krosse * - * @param - * der Typ der Datenobjekte. - * @param - * der Schlüssel für die Datenobjekte. + * @param der Typ der Datenobjekte. + * @param der Schlüssel für die Datenobjekte. */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface TicketDAO extends DAO { /** - * Gibt das Ticket zurück, welches diese DAO zur Sessionverwaltung - * verwendet. Das Ticket darf sich nach der Initialisierung nicht mehr - * ändern. + * Gibt das Ticket zurück, welches diese DAO zur Sessionverwaltung verwendet. + * Das Ticket darf sich nach der Initialisierung nicht mehr ändern. * * @return das Ticket dieser DAO. */ diff --git a/src/main/java/com/bitctrl/modell/TicketDAOFactory.java b/src/main/java/com/bitctrl/modell/TicketDAOFactory.java index 1fdf15e..7991cca 100644 --- a/src/main/java/com/bitctrl/modell/TicketDAOFactory.java +++ b/src/main/java/com/bitctrl/modell/TicketDAOFactory.java @@ -31,11 +31,12 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface TicketDAOFactory extends DAOFactory { /** - * Gibt das Ticket zurück, welches die Factory den von ihr erzeugten DAOs - * mit gibt. + * Gibt das Ticket zurück, welches die Factory den von ihr erzeugten DAOs mit + * gibt. * * @return das Ticket, welches die Factory verwendet. */ @@ -46,6 +47,7 @@ public interface TicketDAOFactory extends DAOFactory { * * Ändert den Rückgabewert auf {@link TicketDAO}. */ + @Override TicketDAO findDAO(Class type); } diff --git a/src/main/java/com/bitctrl/modell/criteria/BaseDAOCriteriaContainer.java b/src/main/java/com/bitctrl/modell/criteria/BaseDAOCriteriaContainer.java index e354992..afd5d02 100644 --- a/src/main/java/com/bitctrl/modell/criteria/BaseDAOCriteriaContainer.java +++ b/src/main/java/com/bitctrl/modell/criteria/BaseDAOCriteriaContainer.java @@ -9,18 +9,22 @@ * * @author BitCtrl Systems GmbH, krosse */ +@Deprecated(since = "3.0.0", forRemoval = true) abstract class BaseDAOCriteriaContainer implements DAOCriteriaContainer { - private final Set criterias = new HashSet(); + private final Set criterias = new HashSet<>(); + @Override public void addDAOCriterion(final DAOCriterion criterion) { criterias.add(criterion); } + @Override public Collection getDAOCriterias() { return criterias; } + @Override public void removeDAOCriterion(final DAOCriterion criterion) { criterias.remove(criterion); } diff --git a/src/main/java/com/bitctrl/modell/criteria/ComparisonDAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/ComparisonDAOCriterion.java index 955bb05..5ca70c3 100644 --- a/src/main/java/com/bitctrl/modell/criteria/ComparisonDAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/ComparisonDAOCriterion.java @@ -31,6 +31,7 @@ * * @author BitCtrl Systems GmbH, Krosse */ +@Deprecated(since = "3.0.0", forRemoval = true) public class ComparisonDAOCriterion implements DAOCriterion { /** @@ -70,8 +71,7 @@ public enum RelationalTypes { /** * case insensitive like. * - * TODOo Eventuell als eigenes Kriterium definieren, da nur für String - * sinnvoll. + * TODOo Eventuell als eigenes Kriterium definieren, da nur für String sinnvoll. */ ILIKE, @@ -85,54 +85,42 @@ public enum RelationalTypes { /** * Konstruktor. * - * @param propertyName - * Propertyname der Bean - * @param type - * Typ des Vergleichsoperators - * @param values - * Werte fuer Vergleichsoperation + * @param propertyName Propertyname der Bean + * @param type Typ des Vergleichsoperators + * @param values Werte fuer Vergleichsoperation */ - public ComparisonDAOCriterion(final String propertyName, - final RelationalTypes type, final Object... values) { + public ComparisonDAOCriterion(final String propertyName, final RelationalTypes type, final Object... values) { this(propertyName, type, false, values); } /** * Konstruktor. * - * @param propertyName - * Propertyname der Bean. - * @param type - * Typ des Vergleichsoperators. - * @param not - * Wenn der Ausdruck verneint werden soll. - * @param values - * Werte fuer Vergleichsoperation. + * @param propertyName Propertyname der Bean. + * @param type Typ des Vergleichsoperators. + * @param not Wenn der Ausdruck verneint werden soll. + * @param values Werte fuer Vergleichsoperation. * - * XXX: Ursprünglich war der Datentyp boolean in dem Konstruktor - * verwendet, aber wegen Bug - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=384562 war der - * Konstruktor für den Eclipse Compiler nicht mehr eindeutig. Als - * Workaround verwenden wir einfach die Klasse Boolean statt - * boolean. + * XXX: Ursprünglich war der Datentyp boolean in dem + * Konstruktor verwendet, aber wegen Bug + * https://bugs.eclipse.org/bugs/show_bug.cgi?id=384562 war + * der Konstruktor für den Eclipse Compiler nicht mehr + * eindeutig. Als Workaround verwenden wir einfach die + * Klasse Boolean statt boolean. */ - public ComparisonDAOCriterion(final String propertyName, - final RelationalTypes type, final Boolean not, + public ComparisonDAOCriterion(final String propertyName, final RelationalTypes type, final Boolean not, final Object... values) { this.propertyName = propertyName; this.type = type; this.values = values; this.not = not; - if (this.values == null || type != RelationalTypes.IN - && this.values.length == 0) { - throw new IllegalArgumentException( - "Values parameter can not be null or empty"); + if (this.values == null || type != RelationalTypes.IN && this.values.length == 0) { + throw new IllegalArgumentException("Values parameter can not be null or empty"); } if (this.type == RelationalTypes.BETWEEN && this.values.length != 2) { - throw new IllegalArgumentException( - "Values parameter need two objects for type between"); + throw new IllegalArgumentException("Values parameter need two objects for type between"); } } @@ -166,8 +154,8 @@ public Object[] getValues() { /** * Gibt an ob dieser Ausdruck verneitn werden soll. * - * @return true wenn dieser Ausdruck verneint werden soll, - * sonst false. + * @return true wenn dieser Ausdruck verneint werden soll, sonst + * false. */ public boolean isNot() { return not; diff --git a/src/main/java/com/bitctrl/modell/criteria/ConjunctionDAOCriteriaContainer.java b/src/main/java/com/bitctrl/modell/criteria/ConjunctionDAOCriteriaContainer.java index 30dc9e2..9f87e7c 100644 --- a/src/main/java/com/bitctrl/modell/criteria/ConjunctionDAOCriteriaContainer.java +++ b/src/main/java/com/bitctrl/modell/criteria/ConjunctionDAOCriteriaContainer.java @@ -5,6 +5,7 @@ * * @author BitCtrl Systems GmbH, krosse */ +@Deprecated(since = "3.0.0", forRemoval = true) public class ConjunctionDAOCriteriaContainer extends BaseDAOCriteriaContainer { public ConjunctionDAOCriteriaContainer(final DAOCriterion... criterion) { diff --git a/src/main/java/com/bitctrl/modell/criteria/DAOCriteriaContainer.java b/src/main/java/com/bitctrl/modell/criteria/DAOCriteriaContainer.java index dcb14ce..accad20 100644 --- a/src/main/java/com/bitctrl/modell/criteria/DAOCriteriaContainer.java +++ b/src/main/java/com/bitctrl/modell/criteria/DAOCriteriaContainer.java @@ -7,6 +7,7 @@ * * @author BitCtrl Systems GmbH, krosse */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOCriteriaContainer extends DAOCriterion { /** @@ -14,21 +15,19 @@ public interface DAOCriteriaContainer extends DAOCriterion { * * @return verknüpfte Elemente */ - public Collection getDAOCriterias(); + Collection getDAOCriterias(); /** * Hinzufügen eines neuen DAOCriterion * - * @param criterion - * neues {@link DAOCriterion} + * @param criterion neues {@link DAOCriterion} */ - public void addDAOCriterion(DAOCriterion criterion); + void addDAOCriterion(DAOCriterion criterion); /** * Entfernen des angegebenen {@link DAOCriterion} * - * @param criterion - * zu entferndes Element + * @param criterion zu entferndes Element */ - public void removeDAOCriterion(DAOCriterion criterion); + void removeDAOCriterion(DAOCriterion criterion); } diff --git a/src/main/java/com/bitctrl/modell/criteria/DAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/DAOCriterion.java index f9e94bd..5cb8734 100644 --- a/src/main/java/com/bitctrl/modell/criteria/DAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/DAOCriterion.java @@ -31,6 +31,7 @@ * * @author BitCtrl Systems GmbH, Goerlitz */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOCriterion { // tagging interface diff --git a/src/main/java/com/bitctrl/modell/criteria/DisjunctionDAOCriteriaContainer.java b/src/main/java/com/bitctrl/modell/criteria/DisjunctionDAOCriteriaContainer.java index 6f7fe52..d6de845 100644 --- a/src/main/java/com/bitctrl/modell/criteria/DisjunctionDAOCriteriaContainer.java +++ b/src/main/java/com/bitctrl/modell/criteria/DisjunctionDAOCriteriaContainer.java @@ -5,6 +5,7 @@ * * @author BitCtrl Systems GmbH, krosse */ +@Deprecated(since = "3.0.0", forRemoval = true) public class DisjunctionDAOCriteriaContainer extends BaseDAOCriteriaContainer { public DisjunctionDAOCriteriaContainer(final DAOCriterion... criterion) { diff --git a/src/main/java/com/bitctrl/modell/criteria/ExampleDAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/ExampleDAOCriterion.java index 3400fb6..3539699 100644 --- a/src/main/java/com/bitctrl/modell/criteria/ExampleDAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/ExampleDAOCriterion.java @@ -31,6 +31,7 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public class ExampleDAOCriterion implements DAOCriterion { private final Object example; @@ -38,8 +39,7 @@ public class ExampleDAOCriterion implements DAOCriterion { /** * Initialisiert das Kriterium mit dem Beispielobjekt. * - * @param example - * ein Beispielobjekt. + * @param example ein Beispielobjekt. */ public ExampleDAOCriterion(final Object example) { this.example = example; diff --git a/src/main/java/com/bitctrl/modell/criteria/LimitDAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/LimitDAOCriterion.java index a314434..bba51d3 100644 --- a/src/main/java/com/bitctrl/modell/criteria/LimitDAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/LimitDAOCriterion.java @@ -31,6 +31,7 @@ * * @author BitCtrl Systems GmbH, Görlitz */ +@Deprecated(since = "3.0.0", forRemoval = true) public class LimitDAOCriterion implements DAOCriterion { private final long offset; @@ -39,11 +40,9 @@ public class LimitDAOCriterion implements DAOCriterion { /** * Initialisiert das Criteria mit dem Offset und der Anzahl Datenobjekte. * - * @param offset - * der Offset (inklusive) ab dem die Ergebnisse geliefert werden - * sollen. - * @param limit - * die maximale Anzahl an Ergebnissen. + * @param offset der Offset (inklusive) ab dem die Ergebnisse geliefert werden + * sollen. + * @param limit die maximale Anzahl an Ergebnissen. */ public LimitDAOCriterion(final long offset, final int limit) { this.offset = offset; @@ -51,31 +50,29 @@ public LimitDAOCriterion(final long offset, final int limit) { } /** - * Initialisiert das Criteria mit dem Offset und der maximal möglichen - * Anzahl Datenobjekte. + * Initialisiert das Criteria mit dem Offset und der maximal möglichen Anzahl + * Datenobjekte. * - * @param offset - * der Offset (inklusive) ab dem die Ergebnisse geliefert werden - * sollen. + * @param offset der Offset (inklusive) ab dem die Ergebnisse geliefert werden + * sollen. */ public LimitDAOCriterion(final long offset) { this(offset, Integer.MAX_VALUE); } /** - * Initialisiert das Criteria mit dem Offset des ersten Elements und der - * Anzahl Datenobjekte. + * Initialisiert das Criteria mit dem Offset des ersten Elements und der Anzahl + * Datenobjekte. * - * @param limit - * die maximale Anzahl an Ergebnissen. + * @param limit die maximale Anzahl an Ergebnissen. */ public LimitDAOCriterion(final int limit) { this(0, limit); } /** - * Liefert den Offset, ab dem Datenobjekte geliefert werden sollen. Das - * Element, welches der Offset addressiert, ist im Ergebnis enthalten. + * Liefert den Offset, ab dem Datenobjekte geliefert werden sollen. Das Element, + * welches der Offset addressiert, ist im Ergebnis enthalten. * * @return der Offset. */ @@ -84,8 +81,7 @@ public long getOffset() { } /** - * Liefert das Limit, also die maximale Anzahl von Datenobjekten im - * Ergebnis. + * Liefert das Limit, also die maximale Anzahl von Datenobjekten im Ergebnis. * * @return das Limit. */ @@ -95,8 +91,7 @@ public int getLimit() { @Override public String toString() { - return getClass().getName() + "[offset=" + offset + ", limit=" + limit - + "]"; + return getClass().getName() + "[offset=" + offset + ", limit=" + limit + "]"; } } diff --git a/src/main/java/com/bitctrl/modell/criteria/NullDAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/NullDAOCriterion.java index 046e8dc..554972e 100644 --- a/src/main/java/com/bitctrl/modell/criteria/NullDAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/NullDAOCriterion.java @@ -30,16 +30,16 @@ * * @author BitCtrl Systems GmbH, Görlitz */ +@Deprecated(since = "3.0.0", forRemoval = true) public class NullDAOCriterion implements DAOCriterion { private final String propertyName; /** - * Erstellt ein Kriterium dass einen auf {@code null} zu pruefenden - * Spaltennamen repraesentiert. + * Erstellt ein Kriterium dass einen auf {@code null} zu pruefenden Spaltennamen + * repraesentiert. * - * @param property - * die auf {@code null} zu prüfende Property. + * @param property die auf {@code null} zu prüfende Property. */ public NullDAOCriterion(final String property) { propertyName = property; diff --git a/src/main/java/com/bitctrl/modell/criteria/OrderDAOCriterion.java b/src/main/java/com/bitctrl/modell/criteria/OrderDAOCriterion.java index af015c1..4aaff8b 100644 --- a/src/main/java/com/bitctrl/modell/criteria/OrderDAOCriterion.java +++ b/src/main/java/com/bitctrl/modell/criteria/OrderDAOCriterion.java @@ -31,6 +31,7 @@ * * @author BitCtrl Systems GmbH, Goerlitz */ +@Deprecated(since = "3.0.0", forRemoval = true) public class OrderDAOCriterion implements DAOCriterion { private final String propertyName; @@ -39,8 +40,7 @@ public class OrderDAOCriterion implements DAOCriterion { /** * Erstellt eine aufsteigende Sortierung für Ergebnisse einer DAO. * - * @param propertyName - * der Spaltenname ueber den sortiert werden soll. + * @param propertyName der Spaltenname ueber den sortiert werden soll. */ public OrderDAOCriterion(final String propertyName) { this(propertyName, true); @@ -49,11 +49,9 @@ public OrderDAOCriterion(final String propertyName) { /** * Erstellt eine Sortierung für Ergebnisse einer DAO. * - * @param propertyName - * der Spaltenname ueber den sortiert werden soll. - * @param ascending - * true, wenn aufsteigend sortiert werden soll, - * sonst false. + * @param propertyName der Spaltenname ueber den sortiert werden soll. + * @param ascending true, wenn aufsteigend sortiert werden soll, + * sonst false. */ public OrderDAOCriterion(final String propertyName, final boolean ascending) { this.propertyName = propertyName; @@ -81,8 +79,7 @@ public boolean isAscending() { @Override public String toString() { - return getClass().getName() + "[propertyName=" + propertyName - + ", ascending=" + ascending + "]"; + return getClass().getName() + "[propertyName=" + propertyName + ", ascending=" + ascending + "]"; } } diff --git a/src/main/java/com/bitctrl/modell/package-info.java b/src/main/java/com/bitctrl/modell/package-info.java index 37fd8ae..cf1cbfc 100644 --- a/src/main/java/com/bitctrl/modell/package-info.java +++ b/src/main/java/com/bitctrl/modell/package-info.java @@ -32,5 +32,5 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) package com.bitctrl.modell; - diff --git a/src/main/java/com/bitctrl/modell/util/DAOElementContainer.java b/src/main/java/com/bitctrl/modell/util/DAOElementContainer.java index de43b62..cf24c3c 100644 --- a/src/main/java/com/bitctrl/modell/util/DAOElementContainer.java +++ b/src/main/java/com/bitctrl/modell/util/DAOElementContainer.java @@ -37,6 +37,7 @@ * * @author BitCtrl Systems GmbH, Görlitz */ +@Deprecated(since = "3.0.0", forRemoval = true) public interface DAOElementContainer { /** @@ -51,17 +52,14 @@ public interface DAOElementContainer { * Liefert die Anzahl der Blätterelemente. * * @return Die Anzahl der Blätterelemente. - * @throws DAOException - * Bei einem Fehler. + * @throws DAOException Bei einem Fehler. */ int getLeafElementsCount() throws DAOException; /** - * Liefert alle Kriterien zur Ermittlung des Kindelements am übergebenen - * Index. + * Liefert alle Kriterien zur Ermittlung des Kindelements am übergebenen Index. * - * @param index - * Der Index. + * @param index Der Index. * * @return Die Kriterien. */ @@ -72,8 +70,7 @@ public interface DAOElementContainer { * Sub-Container sein. * * @return Die Elemente dieses Containers - * @throws DAOException - * Bei einem Fehler. + * @throws DAOException Bei einem Fehler. */ List getElements() throws DAOException; } diff --git a/src/main/java/com/bitctrl/modell/util/DAOPage.java b/src/main/java/com/bitctrl/modell/util/DAOPage.java index 50422ff..6850f80 100644 --- a/src/main/java/com/bitctrl/modell/util/DAOPage.java +++ b/src/main/java/com/bitctrl/modell/util/DAOPage.java @@ -44,6 +44,7 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public class DAOPage implements DAOElementContainer, Comparable { /** Die DAO bei der Daten bei Bedarf abgerufen werden. */ @@ -67,27 +68,20 @@ public class DAOPage implements DAOElementContainer, Comparable { private final boolean showPageName; /** - * Initialisiert die Seite mit den notwendigen Informationen zum späteren - * Abruf der Daten. + * Initialisiert die Seite mit den notwendigen Informationen zum späteren Abruf + * der Daten. * - * @param dao - * die DAO bei der Daten bei Bedarf abgerufen werden. - * @param count - * die Gesamtanzahl der Elemente. - * @param pageSize - * die maximale Anzahl der Elemente pro Seite. - * @param showPageName - * Flag, ob {@link #toString()} nur den Bereich oder auch den - * Namen der Page zurückgeben soll. Der Name der Page wird anhand - * des Typs bzw. der BeanInfo bestimmt. - * @param from - * der Index ab dem Daten abgerufen werden sollen (inklusive, ab - * 0). - * @param to - * der Index bis zu dem Daten abgerufen werden sollen (exklusive, - * ab 0). - * @param criteria - * die Kritierien für den Datenabruf. + * @param dao die DAO bei der Daten bei Bedarf abgerufen werden. + * @param count die Gesamtanzahl der Elemente. + * @param pageSize die maximale Anzahl der Elemente pro Seite. + * @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch + * den Namen der Page zurückgeben soll. Der Name der Page + * wird anhand des Typs bzw. der BeanInfo bestimmt. + * @param from der Index ab dem Daten abgerufen werden sollen + * (inklusive, ab 0). + * @param to der Index bis zu dem Daten abgerufen werden sollen + * (exklusive, ab 0). + * @param criteria die Kritierien für den Datenabruf. */ protected DAOPage(final DAO dao, final long count, final int pageSize, final boolean showPageName, final long from, final long to, final DAOCriterion... criteria) { @@ -110,9 +104,9 @@ protected DAOPage(final DAO dao, final long count, final int pageSize, fin } /** - * Flag, ob diese Page Datenelemente oder weitere Pages als Kinder besitzt. - * Eine Subpage liefert mit {@link #getElements()} weitere {@link DAOPage} - * Objekte zurück. Ein normale Page liefert die Datenelemente. + * Flag, ob diese Page Datenelemente oder weitere Pages als Kinder besitzt. Eine + * Subpage liefert mit {@link #getElements()} weitere {@link DAOPage} Objekte + * zurück. Ein normale Page liefert die Datenelemente. * * @return {@code true}, wenn die Page eine Subpage ist. */ @@ -127,12 +121,12 @@ public boolean isSubpage() { * zurück. * * @return die Daten oder Subpages. - * @throws DAOException - * bei einem Fehler. + * @throws DAOException bei einem Fehler. */ + @Override public List getElements() throws DAOException { if (isSubpage()) { - final List subpages = new ArrayList(); + final List subpages = new ArrayList<>(); long subFrom = from; final long subCount = to - from; @@ -171,8 +165,7 @@ public List getElements() throws DAOException { * eingebauten weiteren {@link DAOPage}s. * * @return die Liste der ermittelten Elemente - * @throws DAOException - * die Elemente konnten nicht abgerufen werden + * @throws DAOException die Elemente konnten nicht abgerufen werden */ public List getAllElements() throws DAOException { // Kopie der Kriterien plus einmal Platz für Limitkriterium @@ -183,10 +176,12 @@ public List getAllElements() throws DAOException { return dao.retrieve(criteriaWithLimit); } + @Override public Class getLeafElementsType() { return dao.getPersistentClass(); } + @Override public DAOCriterion[] getLeafElementsCriteriaWithLimit(final int index) { final DAOCriterion[] criteriaWithLimit = new DAOCriterion[criteria.length + 1]; System.arraycopy(criteria, 0, criteriaWithLimit, 0, criteria.length); @@ -203,6 +198,7 @@ public int getPageSize() { return (int) (to - from); } + @Override public int getLeafElementsCount() { return getPageSize(); } @@ -236,8 +232,7 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (obj instanceof DAOPage) { - final DAOPage other = (DAOPage) obj; + if (obj instanceof final DAOPage other) { return Objects.equals(dao.getClass(), other.dao.getClass()) && from == other.from && to == other.to; } return false; @@ -251,9 +246,9 @@ public int hashCode() { /** * {@inheritDoc} * - * Vergleicht gegen nur die Werte von {@code from} dieser und der anderen - * Page. + * Vergleicht gegen nur die Werte von {@code from} dieser und der anderen Page. */ + @Override public int compareTo(final DAOPage o) { return Long.compare(from, o.from); } diff --git a/src/main/java/com/bitctrl/modell/util/DAOPaging.java b/src/main/java/com/bitctrl/modell/util/DAOPaging.java index b3c47f2..cec39c8 100644 --- a/src/main/java/com/bitctrl/modell/util/DAOPaging.java +++ b/src/main/java/com/bitctrl/modell/util/DAOPaging.java @@ -41,86 +41,67 @@ * * @author BitCtrl Systems GmbH, Falko Schumann */ +@Deprecated(since = "3.0.0", forRemoval = true) public final class DAOPaging { /** - * Erzeugt abhängig von der Anzahl der erwarteten Objekte beim Datenabruf - * ein Paging oder gibt die Liste der Datenobjekte direkt zurück. + * Erzeugt abhängig von der Anzahl der erwarteten Objekte beim Datenabruf ein + * Paging oder gibt die Liste der Datenobjekte direkt zurück. *

- * Ist die Gesamtanzahl der gefundenen Objekte größer als die maximale - * Anzahl von Objekten pro Seite, werden die notwendigen Seiten zur Anzeige + * Ist die Gesamtanzahl der gefundenen Objekte größer als die maximale Anzahl + * von Objekten pro Seite, werden die notwendigen Seiten zur Anzeige * zurückgegeben. Der Typ der Liste ist dann {@link DAOPage}. *

- * Ist die Anzahl der erwarteten Datenelemente kleiner oder gleich der - * maximalen Anzahl Element pro Seite, werden die Datenelemente direkt als - * Liste zurückgegeben. Der Typ der Liste ist dann der Typ der Datenobjekte. + * Ist die Anzahl der erwarteten Datenelemente kleiner oder gleich der maximalen + * Anzahl Element pro Seite, werden die Datenelemente direkt als Liste + * zurückgegeben. Der Typ der Liste ist dann der Typ der Datenobjekte. * - * @param dao - * die DAO, von der die Daten abgerufen werden sollen. - * @param pageSize - * die maximale Anzahl der Elemente pro Seite. - * @param showPageName - * Flag, ob {@link #toString()} nur den Bereich oder auch den - * Namen der Page zurückgeben soll. Der Name der Page wird anhand - * des Typs bzw. der BeanInfo bestimmt. - * @param createSubpages - * Flag, ob das Anlegen von Subpages bei sehr großen Listen - * erlaubt ist. - * @param criteria - * mögliche Kriterien. + * @param dao die DAO, von der die Daten abgerufen werden sollen. + * @param pageSize die maximale Anzahl der Elemente pro Seite. + * @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch + * den Namen der Page zurückgeben soll. Der Name der Page + * wird anhand des Typs bzw. der BeanInfo bestimmt. + * @param createSubpages Flag, ob das Anlegen von Subpages bei sehr großen + * Listen erlaubt ist. + * @param criteria mögliche Kriterien. * @return entweder die Liste der {@link DAOPage}s oder die Liste der * Datenobjekte. - * @throws DAOException - * bei einem Fehler beim Datenabruf. + * @throws DAOException bei einem Fehler beim Datenabruf. */ - public static List getPagesOrElements(final DAO dao, - final int pageSize, final boolean showPageName, - final boolean createSubpages, final DAOCriterion... criteria) - throws DAOException { + public static List getPagesOrElements(final DAO dao, final int pageSize, final boolean showPageName, + final boolean createSubpages, final DAOCriterion... criteria) throws DAOException { if (dao.count(criteria) > pageSize) { - return getPages(dao, pageSize, showPageName, createSubpages, - criteria); + return getPages(dao, pageSize, showPageName, createSubpages, criteria); } return dao.retrieve(criteria); } /** - * Die Liste der benötigen Seiten zurück, um die Elemente der DAO - * anzuzeigen. + * Die Liste der benötigen Seiten zurück, um die Elemente der DAO anzuzeigen. * - * @param dao - * die DAO, von der die Daten abgerufen werden sollen. - * @param pageSize - * die maximale Anzahl der Elemente pro Seite. - * @param showPageName - * Flag, ob {@link #toString()} nur den Bereich oder auch den - * Namen der Page zurückgeben soll. Der Name der Page wird anhand - * des Typs bzw. der BeanInfo bestimmt. - * @param createSubpages - * Flag, ob das Anlegen von Subpages bei sehr großen Listen - * erlaubt ist. - * @param criteria - * mögliche Kriterien. + * @param dao die DAO, von der die Daten abgerufen werden sollen. + * @param pageSize die maximale Anzahl der Elemente pro Seite. + * @param showPageName Flag, ob {@link #toString()} nur den Bereich oder auch + * den Namen der Page zurückgeben soll. Der Name der Page + * wird anhand des Typs bzw. der BeanInfo bestimmt. + * @param createSubpages Flag, ob das Anlegen von Subpages bei sehr großen + * Listen erlaubt ist. + * @param criteria mögliche Kriterien. * @return die Seitenliste. - * @throws DAOException - * bei einem Fehler beim Datenabruf. + * @throws DAOException bei einem Fehler beim Datenabruf. */ @SuppressWarnings("unchecked") - public static List getPages(final DAO dao, - final int pageSize, final boolean showPageName, - final boolean createSubpages, final DAOCriterion... criteria) - throws DAOException { + public static List getPages(final DAO dao, final int pageSize, final boolean showPageName, + final boolean createSubpages, final DAOCriterion... criteria) throws DAOException { if (pageSize <= 0) { - throw new IllegalArgumentException( - "Page size must be greater than 0."); + throw new IllegalArgumentException("Page size must be greater than 0."); } - final List pages = new ArrayList(); + final List pages = new ArrayList<>(); final long count = dao.count(criteria); if (pageSize < count && createSubpages) { - return (List) new DAOPage(dao, count, pageSize, - showPageName, 0, count, criteria).getElements(); + return (List) new DAOPage(dao, count, pageSize, showPageName, 0, count, criteria).getElements(); } // Keine Subpages anlegen @@ -134,8 +115,7 @@ public static List getPages(final DAO dao, currentSize = (int) (count - offset); } - pages.add(new DAOPage(dao, count, pageSize, showPageName, offset, - offset + currentSize, criteria)); + pages.add(new DAOPage(dao, count, pageSize, showPageName, offset, offset + currentSize, criteria)); } return pages; diff --git a/src/main/java/com/bitctrl/net/IP.java b/src/main/java/com/bitctrl/net/IP.java index 21226cc..72fed2c 100644 --- a/src/main/java/com/bitctrl/net/IP.java +++ b/src/main/java/com/bitctrl/net/IP.java @@ -43,11 +43,10 @@ public class IP implements Serializable { * Bestimmt aus einem String die IP-Adresse. Der String muss im Format * {@code x.x.x.x/x} vorliegen. * - * @param address - * der zu parsende String. + * @param address der zu parsende String. * @return die IP-Adresse. - * @throws IllegalArgumentException - * wenn der String keine gültige Adresse darstellt. + * @throws IllegalArgumentException wenn der String keine gültige Adresse + * darstellt. */ public static IP valueOf(final String address) { if (IP_V4) { @@ -61,24 +60,21 @@ public static IP valueOf(final String address) { s = address.split("/"); if (s.length != 1 && s.length != 2) { - throw new IllegalArgumentException( - "Can not determine host address and subnet mask length."); + throw new IllegalArgumentException("Can not determine host address and subnet mask length."); } try { host = parseAddress(s[0]); } catch (final IllegalArgumentException ex) { // Wird nur aufgefangen um die Fehlermeldung anzupassen. - throw new IllegalArgumentException( - "Can not determine host address."); + throw new IllegalArgumentException("Can not determine host address."); } if (s.length == 2) { try { maskLength = Short.valueOf(s[1]); } catch (final NumberFormatException ex) { - throw new IllegalArgumentException( - "Can not determine subnet mask length.", ex); + throw new IllegalArgumentException("Can not determine subnet mask length.", ex); } } else { maskLength = 0; @@ -106,8 +102,7 @@ private static long parseAddress(final String addressString) { s = addressString.split("\\."); if (s.length != 4) { - throw new IllegalArgumentException( - "Can not determine subnet address."); + throw new IllegalArgumentException("Can not determine subnet address."); } address = Long.parseLong(s[0]) << 24; address |= Long.parseLong(s[1]) << 16; @@ -127,8 +122,7 @@ private static long parseAddress(final String addressString) { /** * Initialisiert die IP-Adresse mit dem angegebenen Host ohne Subnetmaske. * - * @param host - * der Host. + * @param host der Host. */ public IP(final long host) { this(host, (short) 0); @@ -137,10 +131,8 @@ public IP(final long host) { /** * Initialisiert die IP-Adresse. * - * @param host - * die Hostadresse. - * @param maskLength - * die Länge der Subnetmaske. + * @param host die Hostadresse. + * @param maskLength die Länge der Subnetmaske. */ public IP(final long host, final short maskLength) { this.host = host; @@ -150,8 +142,7 @@ public IP(final long host, final short maskLength) { /** * Verwendet {@link #valueOf(String)} zur Initialisierung der IP-Adresse. * - * @param address - * ein String, der eine IP-Adresse darstellt. + * @param address ein String, der eine IP-Adresse darstellt. */ public IP(final String address) { final IP ip = valueOf(address); @@ -160,8 +151,8 @@ public IP(final String address) { } /** - * Gibt die IP-Adresse zurück. Zur Zeit verwendet diese Methode IPv4, dies - * kann sich in späteren Versionen zu gunsten von IPv6 ändern. + * Gibt die IP-Adresse zurück. Zur Zeit verwendet diese Methode IPv4, dies kann + * sich in späteren Versionen zu gunsten von IPv6 ändern. * * @return die IP-Adresse. * @see #getHostIPv4() @@ -268,11 +259,11 @@ public String getSubnetAsString() { @Override public String toString() { - String s = getHostAsString(); + final StringBuilder s = new StringBuilder().append(getHostAsString()); if (getMaskLength() > 0) { - s += "/" + getMaskLength(); + s.append("/").append(getMaskLength()); } - return s; + return s.toString(); } /** @@ -286,8 +277,7 @@ public boolean equals(final Object obj) { if (this == obj) { return true; } - if (obj instanceof IP) { - final IP o = (IP) obj; + if (obj instanceof final IP o) { return host == o.host && maskLength == o.maskLength; } return false; @@ -298,7 +288,6 @@ public boolean equals(final Object obj) { */ @Override public int hashCode() { - return Long.valueOf(host).hashCode() - ^ Long.valueOf(maskLength).hashCode(); + return Long.valueOf(host).hashCode() ^ Long.valueOf(maskLength).hashCode(); } } diff --git a/src/main/java/com/bitctrl/net/MAC.java b/src/main/java/com/bitctrl/net/MAC.java index b06a73f..1659657 100644 --- a/src/main/java/com/bitctrl/net/MAC.java +++ b/src/main/java/com/bitctrl/net/MAC.java @@ -45,11 +45,10 @@ public class MAC implements Serializable { * Bestimmt aus einem String die MAC-Adresse. Der String muss im Format * {@code x:x:x:x:x:x} vorliegen. * - * @param address - * die Adresse als Zeichenkette + * @param address die Adresse als Zeichenkette * @return die Adresse - * @throws IllegalArgumentException - * die übergebene Zeichenkette konnte nicht interpretiert werden + * @throws IllegalArgumentException die übergebene Zeichenkette konnte nicht + * interpretiert werden */ public static MAC valueOf(final String address) throws IllegalArgumentException { if (address == null || address.length() == 0) { @@ -73,8 +72,7 @@ public static MAC valueOf(final String address) throws IllegalArgumentException /** * Initialisiert die MAC-Adresse. * - * @param address - * die sechs Bytes der MAC-Adresse. + * @param address die sechs Bytes der MAC-Adresse. */ public MAC(final byte[] address) { if (address.length != 6) { @@ -86,10 +84,9 @@ public MAC(final byte[] address) { /** * Verwendet {@link #valueOf(String)} zur Initialisierung der MAC-Adresse. * - * @param address - * ein String, der eine MAC-Adresse darstellt. - * @throws IllegalArgumentException - * die übergebene Zeichenkette konnte nicht interpretiert werden + * @param address ein String, der eine MAC-Adresse darstellt. + * @throws IllegalArgumentException die übergebene Zeichenkette konnte nicht + * interpretiert werden */ public MAC(final String address) throws IllegalArgumentException { this.address = valueOf(address).getAddress(); @@ -108,8 +105,7 @@ public byte[] getAddress() { public boolean equals(final Object obj) { if (this == obj) { return true; - } else if (obj instanceof MAC) { - final MAC o = (MAC) obj; + } else if (obj instanceof final MAC o) { return Arrays.equals(address, o.address); } @@ -124,15 +120,15 @@ public int hashCode() { @Override public String toString() { final char[] hex = Hex.encodeHex(address); - String s = ""; + final StringBuilder s = new StringBuilder(); for (int i = 0; i < hex.length; ++i) { - s += hex[i]; + s.append(hex[i]); if (i % 2 == 1 && i < hex.length - 1) { // Nach jedem Byte (2 Hexziffern) Trenzeichen einfügen. - s += ':'; + s.append(':'); } } - return s; + return s.toString(); } } diff --git a/src/main/java/com/bitctrl/package-info.java b/src/main/java/com/bitctrl/package-info.java index 1048080..de0dc5e 100644 --- a/src/main/java/com/bitctrl/package-info.java +++ b/src/main/java/com/bitctrl/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl; - diff --git a/src/main/java/com/bitctrl/resource/CSVProperties.java b/src/main/java/com/bitctrl/resource/CSVProperties.java index d6d68f1..0b7ce56 100644 --- a/src/main/java/com/bitctrl/resource/CSVProperties.java +++ b/src/main/java/com/bitctrl/resource/CSVProperties.java @@ -41,7 +41,7 @@ public class CSVProperties { private char escape = '"'; private String newline = "\r\n"; private boolean firstLineHeader = false; - private List headers = new ArrayList(); + private List headers = new ArrayList<>(); /** * Gibt das Trennzeichen der Spalten zurück. @@ -55,16 +55,14 @@ public char getDelimiter() { /** * Legt das Trennzeichen für Spalten fest. * - * @param delimiter - * das Trennzeichen. + * @param delimiter das Trennzeichen. */ public void setDelimiter(final char delimiter) { this.delimiter = delimiter; } /** - * Gibt das Zeichen zurück, mit dem Felder optional eingeschlossen sein - * können. + * Gibt das Zeichen zurück, mit dem Felder optional eingeschlossen sein können. * * @return das Escapezeichen. */ @@ -75,8 +73,7 @@ public char getEscape() { /** * Legt fest mit welchem Zeichen Felder optional eingeschlossen sein können. * - * @param escape - * das Escapezeichen. + * @param escape das Escapezeichen. */ public void setEscape(final char escape) { this.escape = escape; @@ -85,8 +82,7 @@ public void setEscape(final char escape) { /** * Flag, ob die erste Zeile als Spaltenüberschrift interpretiert wird. * - * @return {@code true}, wenn die erste Zeile die Spaltenüberschriften - * enthält. + * @return {@code true}, wenn die erste Zeile die Spaltenüberschriften enthält. */ public boolean isFirstLineHeader() { return firstLineHeader; @@ -95,9 +91,8 @@ public boolean isFirstLineHeader() { /** * Flag, ob die erste Zeile als Spaltenüberschrift interpretiert wird. * - * @param firstLineHeader - * {@code true}, wenn die erste Zeile die Spaltenüberschriften - * enthält. + * @param firstLineHeader {@code true}, wenn die erste Zeile die + * Spaltenüberschriften enthält. */ public void setFirstLineHeader(final boolean firstLineHeader) { this.firstLineHeader = firstLineHeader; @@ -115,18 +110,16 @@ public List getHeader() { /** * Legt die Spaltenüberschriften fest. * - * @param header - * die Spaltenüberschrifen. + * @param header die Spaltenüberschrifen. */ public void setHeader(final List header) { - this.headers = new ArrayList(header); + this.headers = new ArrayList<>(header); } /** * Bestimmt zu einer Spaltenüberschrift den Spaltenindex. * - * @param header - * der gesuchte Spaltenname. + * @param header der gesuchte Spaltenname. * @return der dazugehörige Spaltenindex. */ public int getColumnIndex(final String header) { @@ -136,8 +129,7 @@ public int getColumnIndex(final String header) { /** * Bestimmt zu einem Spaltenindex die Spaltenüberschrift. * - * @param index - * der gesuchte Spaltenindex. + * @param index der gesuchte Spaltenindex. * @return der dazugehörige Spaltenname. */ public String getHeader(final int index) { @@ -145,10 +137,10 @@ public String getHeader(final int index) { } /** - * Gibt die zu verwendende Zeichenkette für den Zeilenumbruch zurück. - * Funktionen die CSV-Daten lesen, sollten sich tolerant gegenüber dem - * tatsächlichen Zeilenumbruch verhalten. Funktionen die CSV-Daten - * schreiben, müssen den angegebenen Zeilenumbruch verwenden. + * Gibt die zu verwendende Zeichenkette für den Zeilenumbruch zurück. Funktionen + * die CSV-Daten lesen, sollten sich tolerant gegenüber dem tatsächlichen + * Zeilenumbruch verhalten. Funktionen die CSV-Daten schreiben, müssen den + * angegebenen Zeilenumbruch verwenden. * * @return der Zeilenumbruch. */ @@ -159,8 +151,7 @@ public String getNewline() { /** * Legt den zu verwendenden Zeilenumbruch fest. * - * @param newline - * der gewünschte Zeilenumbruch. + * @param newline der gewünschte Zeilenumbruch. * @see #getNewline() */ public void setNewline(final String newline) { diff --git a/src/main/java/com/bitctrl/resource/CSVReader.java b/src/main/java/com/bitctrl/resource/CSVReader.java index dc78fef..312606d 100644 --- a/src/main/java/com/bitctrl/resource/CSVReader.java +++ b/src/main/java/com/bitctrl/resource/CSVReader.java @@ -66,23 +66,19 @@ public class CSVReader extends CSVProperties { /** * Verwendet einen {@link java.io.InputStream} als Quelle für CSV-Daten. * - * @param in - * ein Eingabestrom, z. B. von einem File. - * @param charset - * der zu verwendende Zeichensatz. - * @throws UnsupportedEncodingException - * wenn der angegebene Zeichsatz nicht unterstützt wird. + * @param in ein Eingabestrom, z. B. von einem File. + * @param charset der zu verwendende Zeichensatz. + * @throws UnsupportedEncodingException wenn der angegebene Zeichsatz nicht + * unterstützt wird. */ - public CSVReader(final InputStream in, final String charset) - throws UnsupportedEncodingException { + public CSVReader(final InputStream in, final String charset) throws UnsupportedEncodingException { this.in = new InputStreamReader(in, charset); } /** * Parst einen String als CSV-Daten. * - * @param in - * ein String, z.  der Inhalt eines Files. + * @param in ein String, z.  der Inhalt eines Files. */ public CSVReader(final String in) { this.in = new StringReader(in); @@ -92,11 +88,10 @@ public CSVReader(final String in) { * Liest den nächsten Datensatz aus der Datei. * * @return der gelesene Datensatz. - * @throws IOException - * bei Fehlern vom Lesen aus dem Eingabestrom. + * @throws IOException bei Fehlern vom Lesen aus dem Eingabestrom. */ public List next() throws IOException { - List record = new ArrayList(); + List record = new ArrayList<>(); boolean eof = false; boolean escaped = false; char lastSymbol; @@ -142,23 +137,18 @@ public List next() throws IOException { if (lastSymbol == CR) { if (currentSymbol == LF) { // Ende des Records erreicht (Windows) - record - .add(buffer.substring(0, - buffer.length() - 1)); + record.add(buffer.substring(0, buffer.length() - 1)); buffer = ""; } else { // Ende des Records erreicht (Mac OS) - record - .add(buffer.substring(0, - buffer.length() - 2)); + record.add(buffer.substring(0, buffer.length() - 2)); buffer = String.valueOf(currentSymbol); } eof = true; } if (buffer.length() == 0 && currentSymbol == getEscape() - || buffer.length() == 1 - && buffer.charAt(0) == getEscape()) { + || buffer.length() == 1 && buffer.charAt(0) == getEscape()) { buffer = ""; escaped = true; } @@ -173,7 +163,7 @@ public List next() throws IOException { } if (eof && getHeader().isEmpty() && isFirstLineHeader()) { setHeader(record); - record = new ArrayList(); + record = new ArrayList<>(); eof = false; } } diff --git a/src/main/java/com/bitctrl/resource/CSVTable.java b/src/main/java/com/bitctrl/resource/CSVTable.java index 6d43b19..6f8714c 100644 --- a/src/main/java/com/bitctrl/resource/CSVTable.java +++ b/src/main/java/com/bitctrl/resource/CSVTable.java @@ -48,8 +48,8 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * TODO Schreiben implementieren - * TODO Weitere CSV-Eigenschaften hinzufügen + * TODO Schreiben implementieren TODO Weitere CSV-Eigenschaften + * hinzufügen */ public class CSVTable { @@ -61,16 +61,13 @@ public class CSVTable { private List header; private String delimiter = DEFAULT_DELIMITER; private Scanner lineScanner; - private long lineCounter = 0; /** * Öffnet eine CSV-Datei unter Verwendung der Standardeinstellungen. * - * @param in - * der Eingabestrom. - * @param firstLineIsHeader - * {@code true}, wenn die erste Zeile die Spaltenüberschriften - * enthält. + * @param in der Eingabestrom. + * @param firstLineIsHeader {@code true}, wenn die erste Zeile die + * Spaltenüberschriften enthält. */ public CSVTable(final InputStream in, final boolean firstLineIsHeader) { scanner = new Scanner(in, Charset.defaultCharset().name()); @@ -81,10 +78,9 @@ public CSVTable(final InputStream in, final boolean firstLineIsHeader) { /** * Verwendet einen String als CSV-"Datei". * - * @param source - * die Eingangsdaten. - * @param firstLineIsHeader - * {@code true}, wenn die erste Zeile die Spaltenüberschriften + * @param source die Eingangsdaten. + * @param firstLineIsHeader {@code true}, wenn die erste Zeile die + * Spaltenüberschriften */ public CSVTable(final String source, final boolean firstLineIsHeader) { scanner = new Scanner(source); @@ -162,8 +158,8 @@ public double nextDouble() { } /** - * Gibt die aktuelle Spalte als {@code int} zurück und rückt den - * Spaltencursor weiter. + * Gibt die aktuelle Spalte als {@code int} zurück und rückt den Spaltencursor + * weiter. * * @return der Spalteninhalt. */ @@ -181,15 +177,14 @@ public boolean nextLine() { if (scanner.hasNextLine()) { lineScanner = new Scanner(scanner.nextLine()); lineScanner.useDelimiter(delimiter); - ++lineCounter; return true; } return false; } /** - * Gibt die aktuelle Spalte als {@code long} zurück und rückt den - * Spaltencursor weiter. + * Gibt die aktuelle Spalte als {@code long} zurück und rückt den Spaltencursor + * weiter. * * @return der Spalteninhalt. */ @@ -200,8 +195,7 @@ public long nextLong() { /** * Legt das Trennzeichen der Spalten fest. * - * @param delimiter - * ein Trennzeichen. + * @param delimiter ein Trennzeichen. */ public void setDelimiter(final String delimiter) { this.delimiter = delimiter; @@ -209,7 +203,7 @@ public void setDelimiter(final String delimiter) { private void setHeader() { if (isFirstLineIsHeader() && header == null) { - header = new ArrayList(); + header = new ArrayList<>(); if (nextLine()) { while (hasNext()) { header.add(next()); diff --git a/src/main/java/com/bitctrl/resource/CSVWriter.java b/src/main/java/com/bitctrl/resource/CSVWriter.java index 7c46558..654db20 100644 --- a/src/main/java/com/bitctrl/resource/CSVWriter.java +++ b/src/main/java/com/bitctrl/resource/CSVWriter.java @@ -64,13 +64,12 @@ public class CSVWriter extends CSVProperties { /** * Verwendet einen {@link java.io.InputStream} als Quelle für CSV-Daten. * - * @param out - * ein Eingabestrom, z. B. von einem File. + * @param out ein Eingabestrom, z. B. von einem File. */ public CSVWriter(final OutputStream out) { try { this.out = new OutputStreamWriter(out, Charset.defaultCharset().name()); - } catch (UnsupportedEncodingException e) { + } catch (final UnsupportedEncodingException e) { throw new IllegalStateException("Kann nicht passieren", e); } } @@ -78,8 +77,7 @@ public CSVWriter(final OutputStream out) { /** * Parst einen String als CSV-Daten. * - * @param out - * ein String, z.  der Inhalt eines Files. + * @param out ein String, z.  der Inhalt eines Files. */ public CSVWriter(final StringWriter out) { this.out = out; @@ -90,26 +88,22 @@ public CSVWriter(final FileWriter out2) { } /** - * Schreibt die Liste als einen Datensatz in das File. Jedes Listenelement - * wird als ein Feld interpretiert. + * Schreibt die Liste als einen Datensatz in das File. Jedes Listenelement wird + * als ein Feld interpretiert. * - * @param record - * der zu schreibende Datensatz. - * @throws IOException - * bei Fehlern beim Schreiben ins File. + * @param record der zu schreibende Datensatz. + * @throws IOException bei Fehlern beim Schreiben ins File. */ public void write(final List record) throws IOException { write(record.toArray(new String[record.size()])); } /** - * Schreibt das Feld als einen Datensatz in das File. Jedes Feldelement wird - * als eine (CSV-)Feld interpretiert. + * Schreibt das Feld als einen Datensatz in das File. Jedes Feldelement wird als + * eine (CSV-)Feld interpretiert. * - * @param record - * der zu schreibende Datensatz. - * @throws IOException - * bei Fehlern beim Schreiben ins File. + * @param record der zu schreibende Datensatz. + * @throws IOException bei Fehlern beim Schreiben ins File. */ public void write(final String... record) throws IOException { for (final String field : record) { @@ -119,13 +113,11 @@ public void write(final String... record) throws IOException { } /** - * Schreibt das Feld als einen Datensatz in das File. Jedes Feldelement wird - * als eine (CSV-)Feld interpretiert. + * Schreibt das Feld als einen Datensatz in das File. Jedes Feldelement wird als + * eine (CSV-)Feld interpretiert. * - * @param record - * der zu schreibende Datensatz. - * @throws IOException - * bei Fehlern beim Schreiben ins File. + * @param record der zu schreibende Datensatz. + * @throws IOException bei Fehlern beim Schreiben ins File. */ public void writeOhneEscape(final String... record) throws IOException { for (final String field : record) { diff --git a/src/main/java/com/bitctrl/resource/Classpath.java b/src/main/java/com/bitctrl/resource/Classpath.java index a6b3038..10642ea 100644 --- a/src/main/java/com/bitctrl/resource/Classpath.java +++ b/src/main/java/com/bitctrl/resource/Classpath.java @@ -45,23 +45,20 @@ public final class Classpath { /** - * Sucht alle Klassen aus einem Jar-File heraus. Optional kann die Suche mit - * dem Package-Namen eingeschränkt werden. + * Sucht alle Klassen aus einem Jar-File heraus. Optional kann die Suche mit dem + * Package-Namen eingeschränkt werden. * - * @param jar - * ein Jar-File. - * @param packageName - * das Package desses Klassen gesucht werden sollen. Subpackages - * werden mit einbezogen. Wenn {@code null}, dann werden alle - * Klassen ohne Einschränkung gesucht. + * @param jar ein Jar-File. + * @param packageName das Package desses Klassen gesucht werden sollen. + * Subpackages werden mit einbezogen. Wenn {@code null}, dann + * werden alle Klassen ohne Einschränkung gesucht. * @return die Liste der enthaltenen Klassen. */ - public static List> findClasses(final JarFile jar, - final String packageName) { + public static List> findClasses(final JarFile jar, final String packageName) { Enumeration enumeration; Set> classes; - classes = new HashSet>(); + classes = new HashSet<>(); enumeration = jar.entries(); while (enumeration.hasMoreElements()) { String filename; @@ -73,8 +70,7 @@ public static List> findClasses(final JarFile jar, try { Class c; - c = Class.forName(filename, false, ClassLoader - .getSystemClassLoader()); + c = Class.forName(filename, false, ClassLoader.getSystemClassLoader()); if (packageName != null) { if (c.getPackage().getName().startsWith(packageName)) { classes.add(c); @@ -88,34 +84,29 @@ public static List> findClasses(final JarFile jar, } } - return new ArrayList>(classes); + return new ArrayList<>(classes); } /** * Sucht alle Klassen in einem Package heraus. * - * @param packageName - * der Name eines Packages. - * @param recursively - * {@code true}, wenn das Package rekursiv durchsucht werden - * soll. + * @param packageName der Name eines Packages. + * @param recursively {@code true}, wenn das Package rekursiv durchsucht werden + * soll. * @return die Liste der gefundenen Klasse. */ - public static List> findClasses(final String packageName, - final boolean recursively) { + public static List> findClasses(final String packageName, final boolean recursively) { final ArrayList directories; final Enumeration resources; final Set> classes; - classes = new HashSet>(); + classes = new HashSet<>(); try { - resources = ClassLoader.getSystemResources(packageName.replace('.', - '/')); - directories = new ArrayList(); + resources = ClassLoader.getSystemResources(packageName.replace('.', '/')); + directories = new ArrayList<>(); while (resources.hasMoreElements()) { - directories.add(new File(URLDecoder.decode(resources - .nextElement().getPath(), "UTF-8"))); + directories.add(new File(URLDecoder.decode(resources.nextElement().getPath(), "UTF-8"))); } for (final File directory : directories) { @@ -126,8 +117,7 @@ public static List> findClasses(final String packageName, if (path.contains(".jar!")) { JarFile jar; - jar = new JarFile(path.substring(path.indexOf("file:") + 6, - path.indexOf(".jar!") + 4)); + jar = new JarFile(path.substring(path.indexOf("file:") + 6, path.indexOf(".jar!") + 4)); classes.addAll(findClasses(jar, packageName)); } else { files = directory.listFiles(); @@ -140,32 +130,20 @@ public static List> findClasses(final String packageName, if (filename.endsWith(".class")) { final String classpath; - classpath = packageName - + '.' - + filename.substring(0, filename - .length() - 6); - classes - .add(Class - .forName( - classpath, - false, - ClassLoader - .getSystemClassLoader())); + classpath = packageName + '.' + filename.substring(0, filename.length() - 6); + classes.add(Class.forName(classpath, false, ClassLoader.getSystemClassLoader())); } } else if (recursively && file.isDirectory()) { - classes.addAll(findClasses(packageName + "." - + file.getName(), true)); + classes.addAll(findClasses(packageName + "." + file.getName(), true)); } } } } } - } catch (final Exception ex) { - System.err.println(ex); - } catch (final Error err) { + } catch (final Exception | Error err) { System.err.println(err); } - return new ArrayList>(classes); + return new ArrayList<>(classes); } private Classpath() { diff --git a/src/main/java/com/bitctrl/resource/Configuration.java b/src/main/java/com/bitctrl/resource/Configuration.java index 4617205..06dba96 100644 --- a/src/main/java/com/bitctrl/resource/Configuration.java +++ b/src/main/java/com/bitctrl/resource/Configuration.java @@ -42,32 +42,31 @@ * Konfiguration zu dienen. Die Werte aus dem Propertiesfile können mit * Kommandozeilenargumenten überschrieben werden. *

- * Als Standardfile dient {@link Configuration#CONFIG_FILE}. Es kann aber auch jedes - * beliebige andere Propertiesfile als Konfiguration dienen. + * Als Standardfile dient {@link Configuration#CONFIG_FILE}. Es kann aber auch + * jedes beliebige andere Propertiesfile als Konfiguration dienen. * * @author BitCtrl Systems GmbH, Falko Schumann */ public final class Configuration implements ReadOnlyConfiguration { /** Name der Konfigurationsdatei. */ - public static final String CONFIG_FILE = String - .valueOf("Configuration.properties"); + public static final String CONFIG_FILE = String.valueOf("Configuration.properties"); private static Configuration singleton; /** - * Lädt die Konfiguration einer Applikation. Die Konfiguration steht in - * einem Properties-File. Das File {@link Configuration#CONFIG_FILE} wird im - * Arbeitsverzeichnis der Applikation gesucht. Im Defaultpackage des - * Classpath muss eine solches File existieren. Dieses enthält alle - * Standardwerte der Konfiguration. + * Lädt die Konfiguration einer Applikation. Die Konfiguration steht in einem + * Properties-File. Das File {@link Configuration#CONFIG_FILE} wird im + * Arbeitsverzeichnis der Applikation gesucht. Im Defaultpackage des Classpath + * muss eine solches File existieren. Dieses enthält alle Standardwerte der + * Konfiguration. *

* Das externe Konfigurationsfile ist optional. Das File im Defaultpackage * dagegen muss existieren. * * @return die Einstellungen aus dem File oder null, wenn die * Einstellungen nicht geladen werden konnten. Letzteres darf nicht - * eintreten, da die Standardeinstellungen im JAR-File enthalten - * sein müssen. + * eintreten, da die Standardeinstellungen im JAR-File enthalten sein + * müssen. * @see #getConfiguration(String[]) */ public static synchronized Configuration getConfiguration() { @@ -119,8 +118,7 @@ public static synchronized Configuration getConfiguration() { final String txt; txt = "Beim Laden des Konfigurationsfiles ist ein Fehler" - + " aufgetreten. Die Konfiguration steht nicht zur" - + " Verfügung. Grund: " + ex; + + " aufgetreten. Die Konfiguration steht nicht zur" + " Verfügung. Grund: " + ex; singleton.log.severe(txt); System.err.println(txt); singleton = null; @@ -132,21 +130,19 @@ public static synchronized Configuration getConfiguration() { } /** - * Lädt die Konfiguration der Applikation und überschreibt oder ergänzt - * diese mit Kommandozeilenargumenten. + * Lädt die Konfiguration der Applikation und überschreibt oder ergänzt diese + * mit Kommandozeilenargumenten. * - * @param args - * die Kommandozeilenargumente. + * @param args die Kommandozeilenargumente. * @return die Konfiguration. * @see #getConfiguration() */ - public static synchronized Configuration getConfiguration( - final String[] args) { + public static synchronized Configuration getConfiguration(final String[] args) { getConfiguration(); - for (int i = 0; i < args.length; i++) { + for (final String arg : args) { String[] param; - param = args[i].split("="); + param = arg.split("="); if (param[0].startsWith("-")) { param[0] = param[0].substring(1); } @@ -159,11 +155,10 @@ public static synchronized Configuration getConfiguration( } /** - * Lädt die Konfiguration der Applikation und überschreibt oder ergänzt - * diese mit der Konfiguration der URL. + * Lädt die Konfiguration der Applikation und überschreibt oder ergänzt diese + * mit der Konfiguration der URL. * - * @param url - * ein Propertiesfile. + * @param url ein Propertiesfile. * @return die Konfiguration. * @see #getConfiguration() */ @@ -173,12 +168,9 @@ public static synchronized Configuration getConfiguration(final URL url) { try { singleton.configuration.load(url.openStream()); } catch (final FileNotFoundException ex) { - throw new IllegalArgumentException("Das Konfigurationsfile " + url - + " existiert nicht.", ex); + throw new IllegalArgumentException("Das Konfigurationsfile " + url + " existiert nicht.", ex); } catch (final IOException ex) { - throw new IllegalArgumentException( - "Fehler beim Lesen aus dem Konfigurationsfile " + url - + " .", ex); + throw new IllegalArgumentException("Fehler beim Lesen aus dem Konfigurationsfile " + url + " .", ex); } return singleton; @@ -191,62 +183,77 @@ private Configuration() { // Konstruktor verstecken } + @Override public void beginGroup(final String name) { configuration.beginGroup(name); } + @Override public int beginReadArray(final String name) { return configuration.beginReadArray(name); } + @Override public void endArray(final String name) { configuration.endArray(name); } + @Override public void endGroup(final String name) { configuration.endGroup(name); } + @Override public boolean getBoolean(final String key) { return configuration.getBoolean(key); } + @Override public boolean getBoolean(final String key, final boolean defaultValue) { return configuration.getBoolean(key, defaultValue); } + @Override public double getDouble(final String key) { return configuration.getDouble(key); } + @Override public double getDouble(final String key, final double defaultValue) { return configuration.getDouble(key, defaultValue); } + @Override public int getInt(final String key) { return configuration.getInt(key); } + @Override public int getInt(final String key, final int defaultValue) { return configuration.getInt(key, defaultValue); } + @Override public long getLong(final String key) { return configuration.getLong(key); } + @Override public long getLong(final String key, final long defaultValue) { return configuration.getLong(key, defaultValue); } + @Override public String getString(final String key) { return configuration.getString(key); } + @Override public String getString(final String key, final String defaultValue) { return configuration.getString(key, defaultValue); } + @Override public void setArrayIndex(final int index) { configuration.setArrayIndex(index); } @@ -261,10 +268,11 @@ public String toString() { * * TODO Mit Umstellung auf Java 6 des Projekts vereinfachen! */ + @Override public Set stringPropertyNames() { // return configuration.stringPropertyNames(); - final Set keys = new HashSet(); + final Set keys = new HashSet<>(); for (final Object key : configuration.keySet()) { if (key instanceof String) { keys.add((String) key); @@ -273,6 +281,7 @@ public Set stringPropertyNames() { return keys; } + @Override public boolean containsKey(final String key) { return configuration.containsKey(key); } diff --git a/src/main/java/com/bitctrl/resource/PortableBitmap.java b/src/main/java/com/bitctrl/resource/PortableBitmap.java index 2eef336..bd18959 100644 --- a/src/main/java/com/bitctrl/resource/PortableBitmap.java +++ b/src/main/java/com/bitctrl/resource/PortableBitmap.java @@ -9,7 +9,7 @@ public class PortableBitmap { private int width; private int height; - private final HashSet data = new HashSet(); + private final HashSet data = new HashSet<>(); public PortableBitmap() { // tut nix @@ -36,7 +36,7 @@ public void setWidth(final int width) { final int oldWidth = this.width; this.width = width; if (oldWidth > width) { - final Collection toRemove = new ArrayList(); + final Collection toRemove = new ArrayList<>(); for (final Point point : data.toArray(new Point[0])) { if (point.x > width) { toRemove.add(point); @@ -54,7 +54,7 @@ public void setHeight(final int height) { final int oldHeight = this.height; this.height = height; if (oldHeight > height) { - final Collection toRemove = new ArrayList(); + final Collection toRemove = new ArrayList<>(); for (final Point point : data.toArray(new Point[0])) { if (point.y > height) { toRemove.add(point); diff --git a/src/main/java/com/bitctrl/resource/ReadOnlyConfiguration.java b/src/main/java/com/bitctrl/resource/ReadOnlyConfiguration.java index f17bd24..bb320a1 100644 --- a/src/main/java/com/bitctrl/resource/ReadOnlyConfiguration.java +++ b/src/main/java/com/bitctrl/resource/ReadOnlyConfiguration.java @@ -53,16 +53,14 @@ public interface ReadOnlyConfiguration { /** * Öffnet eine neue Gruppe. * - * @param name - * der Name der Gruppe. + * @param name der Name der Gruppe. */ void beginGroup(final String name); /** * Öffnet ein neues Feld zum Lesen. * - * @param name - * der Name des Felds. + * @param name der Name des Felds. * @return die Länge des Felds. */ int beginReadArray(final String name); @@ -70,24 +68,21 @@ public interface ReadOnlyConfiguration { /** * Schließt ein offenes Feld. * - * @param name - * der Name des Felds. + * @param name der Name des Felds. */ void endArray(final String name); /** * Schließt eine offene Gruppe. * - * @param name - * der Name der Gruppe. + * @param name der Name der Gruppe. */ void endGroup(final String name); /** * Entspricht {@code getBoolean(key, DEFAULT_BOOLEAN)}. * - * @param key - * ein Schlüssel; + * @param key ein Schlüssel; * @return der hinterlegt Wert oder, falls nicht vorhanden * {@link #DEFAULT_BOOLEAN}. * @see #getBoolean(String, boolean) @@ -98,11 +93,9 @@ public interface ReadOnlyConfiguration { * Gibt den Wert der unter dem Schlü;ssel hinterlegt ist als booleschen Wert * zurück. * - * @param key - * der Schlüssel. - * @param defaultValue - * ein Wert der zurückgegeben wird, wenn unter dem Schlüssel kein - * Wert hinterlegt ist. + * @param key der Schlüssel. + * @param defaultValue ein Wert der zurückgegeben wird, wenn unter dem Schlüssel + * kein Wert hinterlegt ist. * @return der hinterlegt Wert oder, falls nicht vorhanden, der angegebene * Standardwert. */ @@ -111,8 +104,7 @@ public interface ReadOnlyConfiguration { /** * Entspricht {@code getDouble(key, DEFAULT_DOUBLE)}. * - * @param key - * ein Schlüssel; + * @param key ein Schlüssel; * @return der hinterlegt Wert oder, falls nicht vorhanden * {@link #DEFAULT_DOUBLE}. * @see #getDouble(String, double) @@ -123,11 +115,9 @@ public interface ReadOnlyConfiguration { * Gibt den Wert der unter dem Schlüssel hinterlegt ist als Gleitkommazahl * zurück. * - * @param key - * der Schlüssel. - * @param defaultValue - * ein Wert der zurückgegeben wird, wenn unter dem Schlüssel kein - * Wert hinterlegt ist. + * @param key der Schlüssel. + * @param defaultValue ein Wert der zurückgegeben wird, wenn unter dem Schlüssel + * kein Wert hinterlegt ist. * @return der hinterlegt Wert oder, falls nicht vorhanden, der angegebene * Standardwert. */ @@ -136,10 +126,8 @@ public interface ReadOnlyConfiguration { /** * Entspricht {@code getInt(key, DEFAULT_INT)}. * - * @param key - * ein Schlüssel; - * @return der hinterlegt Wert oder, falls nicht vorhanden - * {@link #DEFAULT_INT}. + * @param key ein Schlüssel; + * @return der hinterlegt Wert oder, falls nicht vorhanden {@link #DEFAULT_INT}. * @see #getInt(String, int) */ int getInt(final String key); @@ -147,11 +135,9 @@ public interface ReadOnlyConfiguration { /** * Gibt den Wert der unter dem Schlüssel hinterlegt ist als Ganzzahl zurück. * - * @param key - * der Schlüssel. - * @param defaultValue - * ein Wert der zurückgegeben wird, wenn unter dem Schlüssel kein - * Wert hinterlegt ist. + * @param key der Schlüssel. + * @param defaultValue ein Wert der zurückgegeben wird, wenn unter dem Schlüssel + * kein Wert hinterlegt ist. * @return der hinterlegt Wert oder, falls nicht vorhanden, der angegebene * Standardwert. */ @@ -160,8 +146,7 @@ public interface ReadOnlyConfiguration { /** * Entspricht {@code getInt(key, DEFAULT_LONG)}. * - * @param key - * ein Schlüssel; + * @param key ein Schlüssel; * @return der hinterlegt Wert oder, falls nicht vorhanden * {@link #DEFAULT_LONG}. * @see #getLong(String, long) @@ -171,11 +156,9 @@ public interface ReadOnlyConfiguration { /** * Gibt den Wert der unter dem Schlüssel hinterlegt ist als Ganzzahl zurück. * - * @param key - * der Schlüssel. - * @param defaultValue - * ein Wert der zurückgegeben wird, wenn unter dem Schlüssel kein - * Wert hinterlegt ist. + * @param key der Schlüssel. + * @param defaultValue ein Wert der zurückgegeben wird, wenn unter dem Schlüssel + * kein Wert hinterlegt ist. * @return der hinterlegt Wert oder, falls nicht vorhanden, der angegebene * Standardwert. */ @@ -184,8 +167,7 @@ public interface ReadOnlyConfiguration { /** * Entspricht {@code getString(key, DEFAULT_STRING)}. * - * @param key - * ein Schlüssel; + * @param key ein Schlüssel; * @return der hinterlegt Wert oder, falls nicht vorhanden * {@link #DEFAULT_STRING}. * @see #getString(String, String) @@ -195,11 +177,9 @@ public interface ReadOnlyConfiguration { /** * Gibt den Wert der unter dem Schlüssel hinterlegt ist als String zurück. * - * @param key - * der Schlüssel. - * @param defaultValue - * ein Wert der zurückgegeben wird, wenn unter dem Schlüssel kein - * Wert hinterlegt ist. + * @param key der Schlüssel. + * @param defaultValue ein Wert der zurückgegeben wird, wenn unter dem Schlüssel + * kein Wert hinterlegt ist. * @return der hinterlegt Wert oder, falls nicht vorhanden, der angegebene * Standardwert. */ @@ -208,8 +188,7 @@ public interface ReadOnlyConfiguration { /** * Legt den Index des aktuellen Feldes fest. * - * @param index - * der neue Index. + * @param index der neue Index. */ void setArrayIndex(final int index); @@ -223,8 +202,7 @@ public interface ReadOnlyConfiguration { /** * Prüft ob ein Schlüssel in der Schlüsselmenge enthalten ist. * - * @param key - * ein beliebiger String. + * @param key ein beliebiger String. * @return {@code true}, wenn der String ein gültiger Schlüssel ist. */ boolean containsKey(String key); diff --git a/src/main/java/com/bitctrl/resource/WritableConfiguration.java b/src/main/java/com/bitctrl/resource/WritableConfiguration.java index 018baa3..11f0e67 100644 --- a/src/main/java/com/bitctrl/resource/WritableConfiguration.java +++ b/src/main/java/com/bitctrl/resource/WritableConfiguration.java @@ -36,68 +36,55 @@ public interface WritableConfiguration extends ReadOnlyConfiguration { /** * Öffnet ein neues Feld zum Schreiben. * - * @param name - * der Name des Felds. + * @param name der Name des Felds. */ void beginWriteArray(final String name); /** * Öffnet ein neues Feld zum Schreiben. * - * @param name - * der Name des Felds. - * @param size - * die Gr��e die das Feld haben soll. + * @param name der Name des Felds. + * @param size die Gr��e die das Feld haben soll. */ void beginWriteArray(final String name, final int size); /** * Legt einen booleschen Wert unter dem Schlüssel ab. * - * @param key - * der Schlüssel. - * @param value - * der Wert. + * @param key der Schlüssel. + * @param value der Wert. */ void set(final String key, final boolean value); /** * Legt einen Gleitkommawert unter dem Schlüssel ab. * - * @param key - * der Schlüssel. - * @param value - * der Wert. + * @param key der Schlüssel. + * @param value der Wert. */ void set(final String key, final double value); /** * Legt einen Ganzzahlwert unter dem Schlüssel ab. * - * @param key - * der Schlüssel. - * @param value - * der Wert. + * @param key der Schlüssel. + * @param value der Wert. */ void set(final String key, final int value); /** * Legt einen Ganzzahlwert unter dem Schlüssel ab. * - * @param key - * der Schlüssel. - * @param value - * der Wert. + * @param key der Schlüssel. + * @param value der Wert. */ void set(final String key, final long value); /** * Legt einen Stringwert unter dem Schlüssel ab. * - * @param key - * der Schlüssel. - * @param value - * der Wert. + * @param key der Schlüssel. + * @param value der Wert. */ void set(final String key, final String value); diff --git a/src/main/java/com/bitctrl/resource/package-info.java b/src/main/java/com/bitctrl/resource/package-info.java index c8e8a80..1a8edfe 100644 --- a/src/main/java/com/bitctrl/resource/package-info.java +++ b/src/main/java/com/bitctrl/resource/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.resource; - diff --git a/src/main/java/com/bitctrl/rmi/BaseStoppableApplication.java b/src/main/java/com/bitctrl/rmi/BaseStoppableApplication.java index 7885243..6ea6b17 100644 --- a/src/main/java/com/bitctrl/rmi/BaseStoppableApplication.java +++ b/src/main/java/com/bitctrl/rmi/BaseStoppableApplication.java @@ -41,6 +41,7 @@ public class BaseStoppableApplication implements StoppableApplication { * * {@inheritDoc} */ + @Override public void exit() throws RemoteException { try { RemoteTools.unbind(getServiceName()); @@ -55,6 +56,7 @@ public void exit() throws RemoteException { * * {@inheritDoc} */ + @Override public String getServiceName() { return getClass().getName(); } diff --git a/src/main/java/com/bitctrl/rmi/RemoteTools.java b/src/main/java/com/bitctrl/rmi/RemoteTools.java index 4e3da3d..84f3d6d 100644 --- a/src/main/java/com/bitctrl/rmi/RemoteTools.java +++ b/src/main/java/com/bitctrl/rmi/RemoteTools.java @@ -48,18 +48,14 @@ public final class RemoteTools { /** * Registriert eine Anwendung bei der RMI-Registry. * - * @param name - * der Name unter dem die Applikation registriert werden soll. - * Der Name muss in der gesamten Registry eindeutig sein. - * @param service - * die zu registrierende Applikation. - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. - * @throws AlreadyBoundException - * wenn unter dem Namen bereist ein Dienst registriert wurde. + * @param name der Name unter dem die Applikation registriert werden soll. + * Der Name muss in der gesamten Registry eindeutig sein. + * @param service die zu registrierende Applikation. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. + * @throws AlreadyBoundException wenn unter dem Namen bereist ein Dienst + * registriert wurde. */ - public static void bind(final String name, final Remote service) - throws RemoteException, AlreadyBoundException { + public static void bind(final String name, final Remote service) throws RemoteException, AlreadyBoundException { Registry registry; Remote stub; @@ -74,25 +70,19 @@ public static void bind(final String name, final Remote service) * Kommandozeilenargumente {@code [-|--|/]stop} wird die * {@link StoppableApplication#exit()}-Methode der Applikation aufgerufen. * - * @param application - * die zu registrierende Applikation. - * @param args - * die Argumente der {@code main()}-Methode. - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. + * @param application die zu registrierende Applikation. + * @param args die Argumente der {@code main()}-Methode. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. */ - public static void init(final StoppableApplication application, - final String[] args) throws RemoteException { + public static void init(final StoppableApplication application, final String[] args) throws RemoteException { for (final String arg : args) { - if (arg.equals("stop") || arg.equals("-stop") - || arg.equals("--stop") || arg.equals("/stop")) { + if ("stop".equals(arg) || "-stop".equals(arg) || "--stop".equals(arg) || "/stop".equals(arg)) { Registry registry; StoppableApplication stub; registry = LocateRegistry.getRegistry(); try { - stub = (StoppableApplication) registry.lookup(application - .getServiceName()); + stub = (StoppableApplication) registry.lookup(application.getServiceName()); stub.exit(); } catch (final NotBoundException ex) { throw new IllegalStateException(ex); @@ -112,9 +102,7 @@ public static void init(final StoppableApplication application, try { rebind(application.getServiceName(), application); } catch (final ConnectException ex) { - System.err - .println("Anwendungssteuerung per RMI steht nicht zur Verfügung: " - + ex); + System.err.println("Anwendungssteuerung per RMI steht nicht zur Verfügung: " + ex); } } @@ -122,16 +110,12 @@ public static void init(final StoppableApplication application, * Registriert eine Anwendung bei der RMI-Registry, eine bereits vorhandene * Registrierung wird überschrieben. * - * @param name - * der Name unter dem die Applikation registriert werden soll. - * Der Name muss in der gesamten Registry eindeutig sein. - * @param service - * die zu registrierende Applikation. - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. + * @param name der Name unter dem die Applikation registriert werden soll. + * Der Name muss in der gesamten Registry eindeutig sein. + * @param service die zu registrierende Applikation. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. */ - public static void rebind(final String name, final Remote service) - throws RemoteException { + public static void rebind(final String name, final Remote service) throws RemoteException { Registry registry; Remote stub; boolean exists; @@ -145,8 +129,7 @@ public static void rebind(final String name, final Remote service) exists = false; } if (exists) { - System.err.println("Unter dem Namen \"" + name - + "\" war bereits ein RMI-Service registriert."); + System.err.println("Unter dem Namen \"" + name + "\" war bereits ein RMI-Service registriert."); } registry.rebind(name, stub); } @@ -154,15 +137,12 @@ public static void rebind(final String name, final Remote service) /** * Meldet eine Anwendung bei der RMI-Registry wieder ab. * - * @param name - * der Name unter dem die Applikation registriert wurde. - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. - * @throws NotBoundException - * wenn kein Service unter dem Namen registriert wurde. + * @param name der Name unter dem die Applikation registriert wurde. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. + * @throws NotBoundException wenn kein Service unter dem Namen registriert + * wurde. */ - public static void unbind(final String name) throws RemoteException, - NotBoundException { + public static void unbind(final String name) throws RemoteException, NotBoundException { Registry registry; registry = LocateRegistry.getRegistry(); diff --git a/src/main/java/com/bitctrl/rmi/StoppableApplication.java b/src/main/java/com/bitctrl/rmi/StoppableApplication.java index c8ec3c7..42fecf9 100644 --- a/src/main/java/com/bitctrl/rmi/StoppableApplication.java +++ b/src/main/java/com/bitctrl/rmi/StoppableApplication.java @@ -37,13 +37,12 @@ public interface StoppableApplication extends Remote { /** - * Wird aufgerufen, wenn die Applikation beendet werden soll. Die - * Applikation kann noch Aufräumarbeiten erledigen. Am Ende der Methode muss - * sich die Applikation an der RMI-Registry abmelden und sich anschließend - * selbst beenden. + * Wird aufgerufen, wenn die Applikation beendet werden soll. Die Applikation + * kann noch Aufräumarbeiten erledigen. Am Ende der Methode muss sich die + * Applikation an der RMI-Registry abmelden und sich anschließend selbst + * beenden. * - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. * @see RemoteTools#unbind(String) */ void exit() throws RemoteException; @@ -53,8 +52,7 @@ public interface StoppableApplication extends Remote { * RMI-Registry anmeldet. * * @return der in der RMI-Registry eingetragene Name der Applikation. - * @throws RemoteException - * bei Fehlern beim RMI-Zugriff. + * @throws RemoteException bei Fehlern beim RMI-Zugriff. * @see RemoteTools#init(StoppableApplication, String[]) */ String getServiceName() throws RemoteException; diff --git a/src/main/java/com/bitctrl/swing/UiUtilities.java b/src/main/java/com/bitctrl/swing/UiUtilities.java index f21c826..f7014f8 100644 --- a/src/main/java/com/bitctrl/swing/UiUtilities.java +++ b/src/main/java/com/bitctrl/swing/UiUtilities.java @@ -32,6 +32,7 @@ import java.awt.Toolkit; import java.awt.Window; import java.util.logging.Logger; + import javax.swing.UIDefaults; import javax.swing.UIManager; @@ -42,14 +43,12 @@ */ public final class UiUtilities { - private static final Logger LOG = Logger.getLogger(UiUtilities.class - .getName()); + private static final Logger LOG = Logger.getLogger(UiUtilities.class.getName()); /** * Zentriert ein beliebiges Fenster auf dem Bildschirm. * - * @param window - * ein (J)Dialog oder (J)Frame + * @param window ein (J)Dialog oder (J)Frame */ public static void centerWindow(final Window window) { Dimension screen; @@ -63,16 +62,15 @@ public static void centerWindow(final Window window) { } /** - * Ändert die verwendete Standardschrift aller GUI-Komponenten. Die Methode - * wird am besten aufgerufen, bevor das erste Fenster der Applikation - * instanziiert wird. Andernfalls müssen bereits gezeichneten Komponenten - * manuell zum neuzeichen veranlasst werden. + * Ändert die verwendete Standardschrift aller GUI-Komponenten. Die Methode wird + * am besten aufgerufen, bevor das erste Fenster der Applikation instanziiert + * wird. Andernfalls müssen bereits gezeichneten Komponenten manuell zum + * neuzeichen veranlasst werden. * - * @param font - * die neue Standardschrift der Applikation. + * @param font die neue Standardschrift der Applikation. */ public static void setDefaultFont(final Font font) { - UIDefaults uiDefaults = UIManager.getDefaults(); + final UIDefaults uiDefaults = UIManager.getDefaults(); uiDefaults.put("TabbedPane.font", font); uiDefaults.put("Button.font", font); uiDefaults.put("List.font", font); @@ -112,18 +110,18 @@ public static void setDefaultFont(final Font font) { } /** - * Versucht das Look-and-Feel der Anwendung auf das Look-and-Feel der - * aktuellen Plattform zu setzen. + * Versucht das Look-and-Feel der Anwendung auf das Look-and-Feel der aktuellen + * Plattform zu setzen. */ public static void setSystemLookAndFeel() { - if (System.getProperty("java.specification.version").equals("1.4")) { + if ("1.4".equals(System.getProperty("java.specification.version"))) { // Workaround, weil sonst die Stile Win2k und WinXP vermischt werden System.setProperty("swing.noxp", "true"); } try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); LOG.config("Vewende Look and Feel: " + UIManager.getLookAndFeel()); - } catch (Exception ex) { + } catch (final Exception ex) { LOG.warning("Look and Feel des Systems steht nicht zur Verfügung."); } } diff --git a/src/main/java/com/bitctrl/swing/package-info.java b/src/main/java/com/bitctrl/swing/package-info.java index 06590f0..ffc9644 100644 --- a/src/main/java/com/bitctrl/swing/package-info.java +++ b/src/main/java/com/bitctrl/swing/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.swing; - diff --git a/src/main/java/com/bitctrl/text/CheckText.java b/src/main/java/com/bitctrl/text/CheckText.java index 49e0719..7c6dfbd 100644 --- a/src/main/java/com/bitctrl/text/CheckText.java +++ b/src/main/java/com/bitctrl/text/CheckText.java @@ -40,11 +40,9 @@ public final class CheckText { /** - * Prüft ob im String ein Zeilenumbruch enthalten sind. Zeilenumbruch: \n - * und \r + * Prüft ob im String ein Zeilenumbruch enthalten sind. Zeilenumbruch: \n und \r * - * @param s - * Zu testender Text + * @param s Zu testender Text * @return {@code true}, wenn ein Zeilenumbruch enthalten sind */ public static boolean containsLineBreak(final String s) { @@ -62,11 +60,10 @@ public static boolean containsLineBreak(final String s) { } /** - * Prüft ob im String Leerzeichen enthalten sind. Als Leerzeichen gilt neben - * dem eigentlichen Leerzeichen auch Zeilenumbrüche und Tabulatoren. + * Prüft ob im String Leerzeichen enthalten sind. Als Leerzeichen gilt neben dem + * eigentlichen Leerzeichen auch Zeilenumbrüche und Tabulatoren. * - * @param s - * Zu testender Text + * @param s Zu testender Text * @return {@code true}, wenn Leerzeichen enthalten sind * @see java.lang.Character#isWhitespace(char) */ @@ -85,11 +82,10 @@ public static boolean containsWhitespace(final String s) { } /** - * Testet ob der String {@code null} oder ein Leerstring ist. Strings am - * Anfang und Ende des Strings werden vor dem Test entfernt. + * Testet ob der String {@code null} oder ein Leerstring ist. Strings am Anfang + * und Ende des Strings werden vor dem Test entfernt. * - * @param s - * Ein String + * @param s Ein String * @return {@code true}, wenn der String druckbar bzw. anzeigbar ist */ public static boolean isPrintable(final String s) { @@ -99,7 +95,7 @@ public static boolean isPrintable(final String s) { final String t = s.trim(); - if (t.equals("")) { + if ("".equals(t)) { return false; } @@ -112,14 +108,12 @@ public static boolean isPrintable(final String s) { * true}. Im Ausdruck nachdem gesucht wird, kann als Platzhalter der Stern * {@code *} verwendet werden. * - * @param expr - * der Ausdruck. - * @param str - * der String in dem gesucht werden soll. + * @param expr der Ausdruck. + * @param str der String in dem gesucht werden soll. * @return {@code true}, wenn der Ausdruck gefunden wurde, der Ausdruck oder * String {@code null} ist, sonst {@code false}. */ - public static final boolean matches(final String expr, final String str) { + public static boolean matches(final String expr, final String str) { if (expr == null || str == null || expr.trim().length() <= 0) { return true; } @@ -127,8 +121,7 @@ public static final boolean matches(final String expr, final String str) { final String tExpr = expr.trim().toLowerCase(); final String tStr = str.trim().toLowerCase(); - final List searchStrings = new ArrayList(Arrays - .asList(tExpr.toLowerCase().split("\\*"))); + final List searchStrings = new ArrayList<>(Arrays.asList(tExpr.toLowerCase().split("\\*"))); // Leerstring wenn Platzhalter am Ende, da von String.split() ignoriert if (tExpr.endsWith("*")) { diff --git a/src/main/java/com/bitctrl/text/package-info.java b/src/main/java/com/bitctrl/text/package-info.java index a56a9db..d94f842 100644 --- a/src/main/java/com/bitctrl/text/package-info.java +++ b/src/main/java/com/bitctrl/text/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.text; - diff --git a/src/main/java/com/bitctrl/util/AbstractCronJob.java b/src/main/java/com/bitctrl/util/AbstractCronJob.java index 6139d49..73ca524 100644 --- a/src/main/java/com/bitctrl/util/AbstractCronJob.java +++ b/src/main/java/com/bitctrl/util/AbstractCronJob.java @@ -39,24 +39,21 @@ public abstract class AbstractCronJob implements Runnable { private CronPattern pattern; /** - * Erzeugt einen neuen Cron-Job mit Standardnamen. Der Name des Jobs wird - * durch die Job-ID gebildet. + * Erzeugt einen neuen Cron-Job mit Standardnamen. Der Name des Jobs wird durch + * die Job-ID gebildet. * - * @param pattern - * ein Cron-Pattern. + * @param pattern ein Cron-Pattern. */ public AbstractCronJob(final CronPattern pattern) { this(null, pattern); } /** - * Erzeugt einen neuen Cron-Job. Die ID des Cron-Jobs wird fortlaufend - * beginnend bei 1 gebildet. + * Erzeugt einen neuen Cron-Job. Die ID des Cron-Jobs wird fortlaufend beginnend + * bei 1 gebildet. * - * @param name - * der Name des Cron-Jobs. - * @param pattern - * ein Cron-Pattern. + * @param name der Name des Cron-Jobs. + * @param pattern ein Cron-Pattern. */ public AbstractCronJob(final String name, final CronPattern pattern) { this.pattern = pattern; @@ -82,8 +79,7 @@ public CronPattern getPattern() { /** * Ändert das Pattern des Cron-Jobs. * - * @param pattern - * ein Cron-Pattern. + * @param pattern ein Cron-Pattern. */ public void setPattern(final CronPattern pattern) { this.pattern = pattern; diff --git a/src/main/java/com/bitctrl/util/ArrayMemberCombinator.java b/src/main/java/com/bitctrl/util/ArrayMemberCombinator.java index 65c8c67..9a001b4 100644 --- a/src/main/java/com/bitctrl/util/ArrayMemberCombinator.java +++ b/src/main/java/com/bitctrl/util/ArrayMemberCombinator.java @@ -11,10 +11,8 @@ * * @author BitCtrl Systems GmbH, Albrecht Uhlmann * - * @param - * Typ der Eingangsobjekte - * @param - * Typ der Ergebnisobjekte + * @param Typ der Eingangsobjekte + * @param Typ der Ergebnisobjekte */ public abstract class ArrayMemberCombinator implements Runnable { @@ -27,10 +25,8 @@ public abstract class ArrayMemberCombinator implements Runnable { /** * Implementiert die Zuordnungsvorschrift * - * @param i1 - * Eingabeobjekt 1 - * @param i2 - * Eingabeobjekt 2 + * @param i1 Eingabeobjekt 1 + * @param i2 Eingabeobjekt 2 * @return Ergebnisobjet vom Typ O */ protected abstract O combine(I i1, I i2); @@ -38,11 +34,10 @@ public abstract class ArrayMemberCombinator implements Runnable { /** * Konstruktor übernimmt und prüft Argumente * - * @param inputs - * Feld mit Eingabedaten. Muss mindestens ein Element enthalten - * @param alwaysFirst - * Wenn true, wird immer mit dem ersten Element aus inputs - * gearbeitet, ansonsten konsekutive Elemente. + * @param inputs Feld mit Eingabedaten. Muss mindestens ein Element + * enthalten + * @param alwaysFirst Wenn true, wird immer mit dem ersten Element aus inputs + * gearbeitet, ansonsten konsekutive Elemente. */ public ArrayMemberCombinator(final I[] inputs, final boolean alwaysFirst) { super(); @@ -50,9 +45,10 @@ public ArrayMemberCombinator(final I[] inputs, final boolean alwaysFirst) { this.alwaysFirst = alwaysFirst; assert inputs != null; assert inputs.length > 0; - outputs = new ArrayList(inputs.length - 1); + outputs = new ArrayList<>(inputs.length - 1); } + @Override public void run() { synchronized (inputs) { int loop; diff --git a/src/main/java/com/bitctrl/util/CollectionUtilities.java b/src/main/java/com/bitctrl/util/CollectionUtilities.java index 133d891..122719b 100644 --- a/src/main/java/com/bitctrl/util/CollectionUtilities.java +++ b/src/main/java/com/bitctrl/util/CollectionUtilities.java @@ -41,21 +41,17 @@ public final class CollectionUtilities { /** * Bestimmt die Schnittmenge zweier Listen. *

- * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten - * bei der Verwendung dieser Methode keine Annahmen über die Reihenfolgen - * der Elemente im Ergebnis getroffen werden. + * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten bei + * der Verwendung dieser Methode keine Annahmen über die Reihenfolgen der + * Elemente im Ergebnis getroffen werden. * - * @param - * der Typ der Listen. - * @param list1 - * die erste Liste. - * @param list2 - * die zweite Liste. + * @param der Typ der Listen. + * @param list1 die erste Liste. + * @param list2 die zweite Liste. * @return die Schnittliste. */ - public static List intersection(final List list1, - final List list2) { - final List result = new ArrayList(); + public static List intersection(final List list1, final List list2) { + final List result = new ArrayList<>(); for (final T e : list1) { if (list2.contains(e)) { @@ -69,21 +65,17 @@ public static List intersection(final List list1, /** * Bestimmt die Differenz zweier Listen. *

- * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten - * bei der Verwendung dieser Methode keine Annahmen über die Reihenfolgen - * der Elemente im Ergebnis getroffen werden. + * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten bei + * der Verwendung dieser Methode keine Annahmen über die Reihenfolgen der + * Elemente im Ergebnis getroffen werden. * - * @param - * der Typ der Listen. - * @param list1 - * die Liste von der abgezogen wird. - * @param list2 - * die Elemente dieser Liste werden abgezogen. + * @param der Typ der Listen. + * @param list1 die Liste von der abgezogen wird. + * @param list2 die Elemente dieser Liste werden abgezogen. * @return die Listendifferenz. */ - public static List difference(final List list1, - final List list2) { - final List result = new ArrayList(list1); + public static List difference(final List list1, final List list2) { + final List result = new ArrayList<>(list1); for (final T e : list2) { result.remove(e); @@ -93,23 +85,20 @@ public static List difference(final List list1, } /** - * Bestimmt die Vereinigung zweier Listen. Im Ergebnis sind die Elemente - * doppelt vorhanden, die in beiden Listen vorhanden sind. + * Bestimmt die Vereinigung zweier Listen. Im Ergebnis sind die Elemente doppelt + * vorhanden, die in beiden Listen vorhanden sind. *

- * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten - * bei der Verwendung dieser Methode keine Annahmen über die Reihenfolgen - * der Elemente im Ergebnis getroffen werden. + * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten bei + * der Verwendung dieser Methode keine Annahmen über die Reihenfolgen der + * Elemente im Ergebnis getroffen werden. * - * @param - * der Typ der Listen. - * @param list1 - * die erste Liste. - * @param list2 - * die zweite Liste. + * @param der Typ der Listen. + * @param list1 die erste Liste. + * @param list2 die zweite Liste. * @return die Listenvereinigung. */ public static List union(final List list1, final List list2) { - final List result = new ArrayList(); + final List result = new ArrayList<>(); result.addAll(list1); result.addAll(list2); @@ -120,16 +109,13 @@ public static List union(final List list1, final List list2) { * Bestimmt die Summe zweier Listen. Die Elemente die in beiden Listen * vorkommen, werden nur einmal im Ergebnis aufgenommen. *

- * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten - * bei der Verwendung dieser Methode keine Annahmen über die Reihenfolgen - * der Elemente im Ergebnis getroffen werden. + * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten bei + * der Verwendung dieser Methode keine Annahmen über die Reihenfolgen der + * Elemente im Ergebnis getroffen werden. * - * @param - * der Typ der Listen. - * @param list1 - * die erste Liste. - * @param list2 - * die zweite Liste. + * @param der Typ der Listen. + * @param list1 die erste Liste. + * @param list2 die zweite Liste. * @return die Listenvereinigung. */ public static List sum(final List list1, final List list2) { @@ -139,36 +125,29 @@ public static List sum(final List list1, final List list2) { /** * Bestimmt das Komplement zweier Listen (symmetrische Differenz). *

- * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten - * bei der Verwendung dieser Methode keine Annahmen über die Reihenfolgen - * der Elemente im Ergebnis getroffen werden. + * Hinweis: Da dies eigentlich eine Mengenoperation ist, sollten bei + * der Verwendung dieser Methode keine Annahmen über die Reihenfolgen der + * Elemente im Ergebnis getroffen werden. * - * @param - * der Typ der Listen. - * @param list1 - * die erste Liste. - * @param list2 - * die zweite Liste. + * @param der Typ der Listen. + * @param list1 die erste Liste. + * @param list2 die zweite Liste. * @return die Komplementärliste. */ - public static List complement(final List list1, - final List list2) { + public static List complement(final List list1, final List list2) { return union(difference(list1, list2), difference(list2, list1)); } /** * Bestimmt die Schnittmenge zweier Mengen. * - * @param - * der Typ der Mengen. - * @param set1 - * die erste Menge. - * @param set2 - * die zweite Menge. + * @param der Typ der Mengen. + * @param set1 die erste Menge. + * @param set2 die zweite Menge. * @return die Schnittmenge. */ public static Set intersection(final Set set1, final Set set2) { - final Set result = new HashSet(); + final Set result = new HashSet<>(); for (final T e : set1) { if (set2.contains(e)) { @@ -182,16 +161,13 @@ public static Set intersection(final Set set1, final Set set2) { /** * Bestimmt die Differenz zweier Mengen. * - * @param - * der Typ der Mengen. - * @param set1 - * die Menge von der abgezogen wird. - * @param set2 - * die Elemente dieser Liste werden abgezogen. + * @param der Typ der Mengen. + * @param set1 die Menge von der abgezogen wird. + * @param set2 die Elemente dieser Liste werden abgezogen. * @return die Mengendifferenz. */ public static Set difference(final Set set1, final Set set2) { - final Set result = new HashSet(set1); + final Set result = new HashSet<>(set1); for (final T e : set2) { result.remove(e); @@ -203,16 +179,13 @@ public static Set difference(final Set set1, final Set set2) { /** * Bestimmt die Vereinigung zweier Mengen. * - * @param - * der Typ der Mengen. - * @param set1 - * die erste Menge. - * @param set2 - * die zweite Menge. + * @param der Typ der Mengen. + * @param set1 die erste Menge. + * @param set2 die zweite Menge. * @return die Mengenvereinigung. */ public static Set union(final Set set1, final Set set2) { - final Set result = new HashSet(); + final Set result = new HashSet<>(); result.addAll(set1); result.addAll(set2); @@ -222,12 +195,9 @@ public static Set union(final Set set1, final Set set2) { /** * Bestimmt das Komplement zweier Mengen (symmetrische Differenz). * - * @param - * der Typ der Mengen. - * @param set1 - * die erste Menge. - * @param set2 - * die zweite Menge. + * @param der Typ der Mengen. + * @param set1 die erste Menge. + * @param set2 die zweite Menge. * @return die Komplementärmenge. */ public static Set complement(final Set set1, final Set set2) { diff --git a/src/main/java/com/bitctrl/util/ComparableTupel.java b/src/main/java/com/bitctrl/util/ComparableTupel.java index 6612e86..78c8d73 100644 --- a/src/main/java/com/bitctrl/util/ComparableTupel.java +++ b/src/main/java/com/bitctrl/util/ComparableTupel.java @@ -15,16 +15,15 @@ * * @author BitCtrl Systems GmbH, schnepel * - * @param - * Typ des ersten Elements des Tupels - * @param - * Typ des zweiten Elements des Tupels + * @param Typ des ersten Elements des Tupels + * @param Typ des zweiten Elements des Tupels */ @SuppressWarnings("unchecked") public class ComparableTupel, S2 extends Comparable> extends ComparatorTupel { private static class ComparableComparator> implements Comparator { + @Override public int compare(final T a, final T b) { if (a == b) { return 0; @@ -42,8 +41,7 @@ public int compare(final T a, final T b) { /** * Gibt einen {@link Comparator} für {@link Comparable Comparables} zurück. * - * @param - * Der {@link Comparable} Typ + * @param Der {@link Comparable} Typ * @return der {@link Comparator} */ public static > Comparator comparator() { @@ -60,10 +58,8 @@ public ComparableTupel() { /** * Konstruktor mit spezifischen Werten. * - * @param first - * der erste Wert des Tupels - * @param second - * der zweite Wert des Tupels + * @param first der erste Wert des Tupels + * @param second der zweite Wert des Tupels */ public ComparableTupel(final S1 first, final S2 second) { super(first, second, COMPARATOR, COMPARATOR); diff --git a/src/main/java/com/bitctrl/util/ComparatorTupel.java b/src/main/java/com/bitctrl/util/ComparatorTupel.java index b6cae81..c258fab 100644 --- a/src/main/java/com/bitctrl/util/ComparatorTupel.java +++ b/src/main/java/com/bitctrl/util/ComparatorTupel.java @@ -14,10 +14,8 @@ * * @author BitCtrl Systems GmbH, schnepel * - * @param - * der Typ des ersten Elements des Tupels - * @param - * der Typ des zweiten Elements des Tupels + * @param der Typ des ersten Elements des Tupels + * @param der Typ des zweiten Elements des Tupels * @see ComparableTupel#comparator() */ public class ComparatorTupel extends Tupel implements Comparable> { @@ -45,6 +43,7 @@ public void setSecondComparator(final Comparator compSecond) { this.compSecond = compSecond; } + @Override public int compareTo(final ComparatorTupel o) { final int ret = compFirst.compare(getFirst(), o.getFirst()); if (0 != ret) { diff --git a/src/main/java/com/bitctrl/util/CronPattern.java b/src/main/java/com/bitctrl/util/CronPattern.java index ec23717..d13c3d7 100644 --- a/src/main/java/com/bitctrl/util/CronPattern.java +++ b/src/main/java/com/bitctrl/util/CronPattern.java @@ -50,17 +50,16 @@ public class CronPattern implements ValueMatcher { private final String pattern; - private final ValueSetMatcher minuteMatcher = new ValueSetMatcher(); - private final ValueSetMatcher hourMatcher = new ValueSetMatcher(); - private final ValueSetMatcher dayOfMonthMatcher = new ValueSetMatcher(); - private final ValueSetMatcher monthMatcher = new ValueSetMatcher(); - private final ValueSetMatcher dayOfWeekMatcher = new ValueSetMatcher(); + private final ValueSetMatcher minuteMatcher = new ValueSetMatcher<>(); + private final ValueSetMatcher hourMatcher = new ValueSetMatcher<>(); + private final ValueSetMatcher dayOfMonthMatcher = new ValueSetMatcher<>(); + private final ValueSetMatcher monthMatcher = new ValueSetMatcher<>(); + private final ValueSetMatcher dayOfWeekMatcher = new ValueSetMatcher<>(); /** * Erzeugt ein neues Objekt anhand eines String. * - * @param pattern - * ein String in Cron-Syntax. + * @param pattern ein String in Cron-Syntax. */ public CronPattern(final String pattern) { this.pattern = pattern; @@ -84,33 +83,33 @@ private void setPattern(final String pattern) { throw new IllegalArgumentException("Das Pattern entspricht nicht der unterstützten Cron-Syntax."); } try { - if (parts[0].equals("*")) { - minuteMatcher.add(new ValueMatcher.AlwaysMatcher()); + if ("*".equals(parts[0])) { + minuteMatcher.add(new ValueMatcher.AlwaysMatcher<>()); } else { - minuteMatcher.add(new ValueMatcher.CollectionValueMatcher(Integer.valueOf(parts[0]))); + minuteMatcher.add(new ValueMatcher.CollectionValueMatcher<>(Integer.valueOf(parts[0]))); } - if (parts[1].equals("*")) { - hourMatcher.add(new ValueMatcher.AlwaysMatcher()); + if ("*".equals(parts[1])) { + hourMatcher.add(new ValueMatcher.AlwaysMatcher<>()); } else { - hourMatcher.add(new ValueMatcher.CollectionValueMatcher(Integer.valueOf(parts[1]))); + hourMatcher.add(new ValueMatcher.CollectionValueMatcher<>(Integer.valueOf(parts[1]))); } - if (parts[2].equals("*")) { - dayOfMonthMatcher.add(new ValueMatcher.AlwaysMatcher()); + if ("*".equals(parts[2])) { + dayOfMonthMatcher.add(new ValueMatcher.AlwaysMatcher<>()); } else { - dayOfMonthMatcher.add(new ValueMatcher.CollectionValueMatcher(Integer.valueOf(parts[2]))); + dayOfMonthMatcher.add(new ValueMatcher.CollectionValueMatcher<>(Integer.valueOf(parts[2]))); } - if (parts[3].equals("*")) { - monthMatcher.add(new ValueMatcher.AlwaysMatcher()); + if ("*".equals(parts[3])) { + monthMatcher.add(new ValueMatcher.AlwaysMatcher<>()); } else { // Java-Monate gehen bei 0 los - monthMatcher.add(new ValueMatcher.CollectionValueMatcher(Integer.valueOf(parts[3]))); + monthMatcher.add(new ValueMatcher.CollectionValueMatcher<>(Integer.valueOf(parts[3]))); } - if (parts[4].equals("*")) { - dayOfWeekMatcher.add(new ValueMatcher.AlwaysMatcher()); + if ("*".equals(parts[4])) { + dayOfWeekMatcher.add(new ValueMatcher.AlwaysMatcher<>()); } else { // Java-Wochentage gehen bei 1 mit Sonntag los int day; @@ -120,7 +119,7 @@ private void setPattern(final String pattern) { // Sonntag ist intern nur 0, nicht mehr auch 7 day = 0; } - dayOfWeekMatcher.add(new ValueMatcher.CollectionValueMatcher(day)); + dayOfWeekMatcher.add(new ValueMatcher.CollectionValueMatcher<>(day)); } } catch (final NumberFormatException ex) { @@ -130,14 +129,13 @@ private void setPattern(final String pattern) { } /** - * Prüft ob ein Zeitstampel mit dem Cron-Pattern matcht. Der Zeitstempel - * muss mit den Angaben von Wochentag, Monat, Tag, Stunde und Minute - * übereinstimmen. + * Prüft ob ein Zeitstampel mit dem Cron-Pattern matcht. Der Zeitstempel muss + * mit den Angaben von Wochentag, Monat, Tag, Stunde und Minute übereinstimmen. * - * @param timestamp - * ein beliebiger Zeitstempel. + * @param timestamp ein beliebiger Zeitstempel. * @return {@code true}, wenn der Zeitstempel mit dem Cron-Pattern matcht. */ + @Override public boolean match(final Long timestamp) { final int minute, hour, dayOfMonth, month, dayOfWeek; Calendar cal; diff --git a/src/main/java/com/bitctrl/util/CronScheduler.java b/src/main/java/com/bitctrl/util/CronScheduler.java index 2a6abc6..6e388d2 100644 --- a/src/main/java/com/bitctrl/util/CronScheduler.java +++ b/src/main/java/com/bitctrl/util/CronScheduler.java @@ -32,9 +32,9 @@ import com.bitctrl.Constants; /** - * Ein einfacher Scheduler für {@link AbstractCronJob}s. "Einfach" heißt, dass beim - * ausführen von Aktionen nicht geprüft wird, ob ein Cron-Job noch läuft. Ein - * einmal gestarteter Cron-Job wird "vergessen" und darauf vertraut, dass er + * Ein einfacher Scheduler für {@link AbstractCronJob}s. "Einfach" heißt, dass + * beim ausführen von Aktionen nicht geprüft wird, ob ein Cron-Job noch läuft. + * Ein einmal gestarteter Cron-Job wird "vergessen" und darauf vertraut, dass er * sich rechtzeitig vor dem nächsten Zyklus beendet und überhaupt irgendwann * beendet. * @@ -49,9 +49,8 @@ private class SchedulerThread extends Thread { } /** - * Prüft zyklisch ob und welche Cron-Jobs ausgeführt werden müssen und - * führt sie auch aus. Jeder Cron-Job wird in einem eigenen Thread - * ausgeführt. + * Prüft zyklisch ob und welche Cron-Jobs ausgeführt werden müssen und führt sie + * auch aus. Jeder Cron-Job wird in einem eigenen Thread ausgeführt. * * {@inheritDoc} */ @@ -83,10 +82,8 @@ public void run() { // Führe alle Cron-Jobs aus, die jetzt dran sind for (final AbstractCronJob job : jobs.values()) { - if (job.getPattern() != null - && job.getPattern().match(currentTime)) { - new Thread(job, job.getName() + ", gestartet: " - + Timestamp.absoluteTime(currentTime)).start(); + if (job.getPattern() != null && job.getPattern().match(currentTime)) { + new Thread(job, job.getName() + ", gestartet: " + Timestamp.absoluteTime(currentTime)).start(); } } } while (true); @@ -94,7 +91,7 @@ public void run() { } - private final Map jobs = new HashMap(); + private final Map jobs = new HashMap<>(); private final boolean daemon; private SchedulerThread thread; private boolean started = false; @@ -111,20 +108,17 @@ public CronScheduler() { /** * Erzeugt einen Scheduler. * - * @param daemon - * {@code true}, wenn der Scheduler-Thread als Daemon laufen - * soll. + * @param daemon {@code true}, wenn der Scheduler-Thread als Daemon laufen soll. */ public CronScheduler(final boolean daemon) { this.daemon = daemon; } /** - * Nimmt einen neuen Cron-Job in die Jobliste auf. Existiert bereits ein Job - * mit der selben Job-ID, dann wird dieser überschrieben. + * Nimmt einen neuen Cron-Job in die Jobliste auf. Existiert bereits ein Job mit + * der selben Job-ID, dann wird dieser überschrieben. * - * @param job - * ein Cron-Job + * @param job ein Cron-Job * @return die Id des geplanten Cron-Jobs (entspricht * {@link AbstractCronJob#getId()}). */ @@ -136,11 +130,10 @@ public long schedule(final AbstractCronJob job) { } /** - * Entfernt einen Job aus der Jobliste. Existiert kein Job mit der ID, - * passiert nichts. + * Entfernt einen Job aus der Jobliste. Existiert kein Job mit der ID, passiert + * nichts. * - * @param jobId - * eine Job-ID. + * @param jobId eine Job-ID. */ public void deschedule(final long jobId) { synchronized (jobs) { @@ -149,11 +142,10 @@ public void deschedule(final long jobId) { } /** - * Gibt den Cron-Job mit einer bestimmten ID zurück. Existiert unter der ID - * kein Job, wird {@code null} zurückgegeben. + * Gibt den Cron-Job mit einer bestimmten ID zurück. Existiert unter der ID kein + * Job, wird {@code null} zurückgegeben. * - * @param jobId - * eine Job-ID. + * @param jobId eine Job-ID. * @return der Cron-Job oder {@code null}. */ public AbstractCronJob getCronJob(final long jobId) { @@ -163,14 +155,13 @@ public AbstractCronJob getCronJob(final long jobId) { } /** - * Startet den Scheduler. Es wird zyklisch geprüft, welche Cron-Jobs - * ausgeführt werden müssen. Auszuführende Jobs werden entsprechend jeweils - * in einem eigenen Thread gestartet. + * Startet den Scheduler. Es wird zyklisch geprüft, welche Cron-Jobs ausgeführt + * werden müssen. Auszuführende Jobs werden entsprechend jeweils in einem + * eigenen Thread gestartet. */ public final synchronized void start() { if (started) { - throw new IllegalStateException( - "Der Cron-Scheduler wurde bereits gestartet."); + throw new IllegalStateException("Der Cron-Scheduler wurde bereits gestartet."); } thread = new SchedulerThread(); @@ -185,8 +176,7 @@ public final synchronized void start() { */ public final synchronized void stop() { if (!started) { - throw new IllegalStateException( - "Der Cron-Scheduler wurde nicht gestartet."); + throw new IllegalStateException("Der Cron-Scheduler wurde nicht gestartet."); } thread.interrupt(); @@ -213,23 +203,21 @@ public final synchronized boolean isStarted() { /** * Läßt den aktuellen Thread für die angegebene Zeit schlafen. Diese Methode - * kann von abgeleiteten Klassen überschrieben werden um eigene - * Pausemethoden zu implementieren. Die Standardimplementierung verwendet + * kann von abgeleiteten Klassen überschrieben werden um eigene Pausemethoden zu + * implementieren. Die Standardimplementierung verwendet * {@link Thread#sleep(long)}. * - * @param millis - * die Länge der gewünschten Pause in Millisekunden. - * @throws InterruptedException - * wenn das Sleep unterbrochen wurde. + * @param millis die Länge der gewünschten Pause in Millisekunden. + * @throws InterruptedException wenn das Sleep unterbrochen wurde. */ public void sleep(final long millis) throws InterruptedException { Thread.sleep(millis); } /** - * Gibt die aktuelle Zeit zurück. Diese Methode kann von abgeleiteten - * Klassen überschrieben werden um eigene Zeitbestimmung zu implementieren. - * Die Standardimplementierung verwendet {@link System#currentTimeMillis()}. + * Gibt die aktuelle Zeit zurück. Diese Methode kann von abgeleiteten Klassen + * überschrieben werden um eigene Zeitbestimmung zu implementieren. Die + * Standardimplementierung verwendet {@link System#currentTimeMillis()}. * * @return die aktuelle Zeit in Millisekunden. */ diff --git a/src/main/java/com/bitctrl/util/DefaultComparator.java b/src/main/java/com/bitctrl/util/DefaultComparator.java index 118455c..e1e72e6 100644 --- a/src/main/java/com/bitctrl/util/DefaultComparator.java +++ b/src/main/java/com/bitctrl/util/DefaultComparator.java @@ -41,23 +41,19 @@ public class DefaultComparator implements Comparator { * {@inheritDoc} * * Falls beide Objekte {@link Comparable} implementieren und - * zuweisungskompatibel sind ({@link Class#isAssignableFrom(Class)}), dann - * wird die {@code compare()}-Methode von {@code o1} zum Vergleich - * verwendet. Anderfalls werden beide Objekte in Strings überführt ({@code + * zuweisungskompatibel sind ({@link Class#isAssignableFrom(Class)}), dann wird + * die {@code compare()}-Methode von {@code o1} zum Vergleich verwendet. + * Anderfalls werden beide Objekte in Strings überführt ({@code * toString()}) und dann die Strings miteinander verglichen. */ + @Override public int compare(final Object o1, final Object o2) { - if (o1 instanceof Comparable - && o2 instanceof Comparable - && (o1.getClass().isAssignableFrom(o2.getClass()) || o2 - .getClass().isAssignableFrom(o1.getClass()))) { - final Comparable c1 = (Comparable) o1; - final Comparable c2 = (Comparable) o2; + if (o1 instanceof final Comparable c1 && o2 instanceof final Comparable c2 + && (o1.getClass().isAssignableFrom(o2.getClass()) || o2.getClass().isAssignableFrom(o1.getClass()))) { return c1.compareTo(c2); } - return String.CASE_INSENSITIVE_ORDER.compare(o1.toString(), o2 - .toString()); + return String.CASE_INSENSITIVE_ORDER.compare(o1.toString(), o2.toString()); } } diff --git a/src/main/java/com/bitctrl/util/FieldIterator.java b/src/main/java/com/bitctrl/util/FieldIterator.java index 6bc690f..3bca89c 100644 --- a/src/main/java/com/bitctrl/util/FieldIterator.java +++ b/src/main/java/com/bitctrl/util/FieldIterator.java @@ -34,8 +34,7 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Feldtyp. + * @param der Feldtyp. * * @deprecated use foreach loop */ @@ -48,17 +47,18 @@ public class FieldIterator implements Iterator { /** * Initialisiert das Objekt, indem die Referenz gesichert wird. * - * @param data - * das Feld. + * @param data das Feld. */ public FieldIterator(final T... data) { this.data = data; } + @Override public boolean hasNext() { return data != null ? cursor < data.length : false; } + @Override public T next() { if (!hasNext()) { throw new NoSuchElementException(); @@ -71,6 +71,7 @@ public T next() { * * {@inheritDoc} */ + @Override public void remove() { throw new UnsupportedOperationException(); } diff --git a/src/main/java/com/bitctrl/util/ISimpleCallCountInfoProvider.java b/src/main/java/com/bitctrl/util/ISimpleCallCountInfoProvider.java index 6c3bc83..c405348 100644 --- a/src/main/java/com/bitctrl/util/ISimpleCallCountInfoProvider.java +++ b/src/main/java/com/bitctrl/util/ISimpleCallCountInfoProvider.java @@ -35,8 +35,8 @@ public interface ISimpleCallCountInfoProvider { /** - * Liefert einen Text, der die aktuellen Zähler für die einzelnen - * WSDL-Callbacks enthält. + * Liefert einen Text, der die aktuellen Zähler für die einzelnen WSDL-Callbacks + * enthält. * * @return der Text */ diff --git a/src/main/java/com/bitctrl/util/ITwoDimensionalMap.java b/src/main/java/com/bitctrl/util/ITwoDimensionalMap.java index ac145eb..9e9e2e4 100644 --- a/src/main/java/com/bitctrl/util/ITwoDimensionalMap.java +++ b/src/main/java/com/bitctrl/util/ITwoDimensionalMap.java @@ -5,79 +5,71 @@ public interface ITwoDimensionalMap { /** - * Returns all known row keys. This is backed by the map so that changes to - * the map get reflected. + * Returns all known row keys. This is backed by the map so that changes to the + * map get reflected. * * @return a collection containing all known row keys. */ - public abstract Collection getRowKeys(); + Collection getRowKeys(); /** * Returns all currently known row entry values for the given row key. The - * returned collection is unmodifiable and doesn't reflect changes to the - * map. The values are null for unset columns. + * returned collection is unmodifiable and doesn't reflect changes to the map. + * The values are null for unset columns. * - * @param row - * the row key + * @param row the row key * @return all known values for the given row. */ - public abstract Collection getRow(final R row); + Collection getRow(final R row); /** - * Return all known column keys. This is backed by the map so that changes - * to the map get reflected. + * Return all known column keys. This is backed by the map so that changes to + * the map get reflected. * * @return a collection containing all known column keys. */ - public abstract Collection getColumnKeys(); + Collection getColumnKeys(); /** - * Returns all currently known column entry values for the given column key. - * The returned collection is unmodifiable and doesn't reflect changes to - * the map. The values are null for unset rows. + * Returns all currently known column entry values for the given column key. The + * returned collection is unmodifiable and doesn't reflect changes to the map. + * The values are null for unset rows. * - * @param column - * the column key + * @param column the column key * @return all known values for the given column. */ - public abstract Collection getColumn(final C column); + Collection getColumn(final C column); /** * Stores a value in the map at a specific row/column position. * - * @param row - * the row key - * @param column - * the column key - * @param value - * the value to be set. + * @param row the row key + * @param column the column key + * @param value the value to be set. * @return the previously stored value. */ - public abstract D put(final R row, final C column, final D value); + D put(final R row, final C column, final D value); /** * Returns a value from the map stored at a specific row/column position. * - * @param row - * the row key - * @param column - * the column key + * @param row the row key + * @param column the column key * @return the stored value. */ - public abstract D get(final R row, final C column); + D get(final R row, final C column); /** * Returns all values as a collection. * * @return all values */ - public abstract Collection values(); + Collection values(); /** * Removes a row with all its values and returns them as collection. * - * @param row - * the row key + * @param row the row key * @return the removed entries. */ Collection removeRow(R row); diff --git a/src/main/java/com/bitctrl/util/Interval.java b/src/main/java/com/bitctrl/util/Interval.java index 3d20106..23a26ce 100644 --- a/src/main/java/com/bitctrl/util/Interval.java +++ b/src/main/java/com/bitctrl/util/Interval.java @@ -45,10 +45,8 @@ public class Interval implements Cloneable { /** * Konstruiert ein Zeitintervall mit dem angegebenen Grenzen. * - * @param start - * Start des Intervalls - * @param end - * Ende des Intervalls + * @param start Start des Intervalls + * @param end Ende des Intervalls */ public Interval(final long start, final long end) { this(start, end, true); @@ -57,20 +55,15 @@ public Interval(final long start, final long end) { /** * Konstruiert ein Intervall mit dem angegebenen Grenzen. * - * @param start - * Start des Intervalls - * @param end - * Ende des Intervalls - * @param timestamp - * handelt es sich um ein zeitliches Intervall? + * @param start Start des Intervalls + * @param end Ende des Intervalls + * @param timestamp handelt es sich um ein zeitliches Intervall? */ public Interval(final long start, final long end, final boolean timestamp) { if (start > end) { throw new IllegalArgumentException( - "Das Ende des Intervalls darf nicht vor dessen Start liegen (start=" - + Timestamp.absoluteTime(start) + " / " + start - + ", ende=" + Timestamp.absoluteTime(end) + " / " - + end + ")."); + "Das Ende des Intervalls darf nicht vor dessen Start liegen (start=" + Timestamp.absoluteTime(start) + + " / " + start + ", ende=" + Timestamp.absoluteTime(end) + " / " + end + ")."); } this.start = start; @@ -89,42 +82,36 @@ public Interval clone() { } /** - * Prüft ob ein anderes Intervall in diesem Intervall enhalten ist, - * inklusive der Intervallgrenzen. + * Prüft ob ein anderes Intervall in diesem Intervall enhalten ist, inklusive + * der Intervallgrenzen. * - * @param interval - * ein Intervall. - * @return {@code true}, wenn das andere Intervall innerhalb dieses - * Intervalls liegt oder mit ihm identisch ist. + * @param interval ein Intervall. + * @return {@code true}, wenn das andere Intervall innerhalb dieses Intervalls + * liegt oder mit ihm identisch ist. */ public boolean contains(final Interval interval) { return contains(interval.start) && contains(interval.end); } /** - * Prüft ob ein Wert im Intervall enhalten ist, inklusive der - * Intervallgrenzen. + * Prüft ob ein Wert im Intervall enhalten ist, inklusive der Intervallgrenzen. * - * @param value - * Ein Wert - * @return {@code true}, wenn der Wert innerhalb des Intervalls oder auf - * einer der Intervallgrenzen liegt + * @param value Ein Wert + * @return {@code true}, wenn der Wert innerhalb des Intervalls oder auf einer + * der Intervallgrenzen liegt */ public boolean contains(final long value) { return start <= value && value <= end; } /** - * Zwei Intervalle sind gleich, wenn sie den selben Start- und Endwert - * besitzen. + * Zwei Intervalle sind gleich, wenn sie den selben Start- und Endwert besitzen. * * {@inheritDoc} */ @Override public boolean equals(final Object obj) { - if (obj instanceof Interval) { - final Interval intervall = (Interval) obj; - + if (obj instanceof final Interval intervall) { return start == intervall.start && end == intervall.end; } @@ -169,33 +156,27 @@ public int hashCode() { } /** - * Prüft ob sich zwei Intervalle schneiden. Zwei Intervalle schneiden sich, - * wenn sie mindestens einen Punkt gemeinsam haben (exklusive den - * Intervallgrenzen) und ein Intervall nicht das andere enthält. + * Prüft ob sich zwei Intervalle schneiden. Zwei Intervalle schneiden sich, wenn + * sie mindestens einen Punkt gemeinsam haben (exklusive den Intervallgrenzen) + * und ein Intervall nicht das andere enthält. * - * @param interval - * Ein anderes Intervall - * @return {@code true}, wenn sich dieses Intervall mit dem anderen - * schneidet + * @param interval Ein anderes Intervall + * @return {@code true}, wenn sich dieses Intervall mit dem anderen schneidet */ public boolean intersect(final Interval interval) { - return (!contains(interval) && !interval.contains(this)) - && (interval.isWithin(start) || interval.isWithin(end) - || isWithin(interval.start) || isWithin(interval.end)); + return (!contains(interval) && !interval.contains(this)) && (interval.isWithin(start) || interval.isWithin(end) + || isWithin(interval.start) || isWithin(interval.end)); } /** - * Prüft ob sich zwei Intervalle berühren. Zwei Intervalle berühren sich, - * wenn sie mindestens einen Punkt gemeinsam haben (inklusive den - * Intervallgrenzen). + * Prüft ob sich zwei Intervalle berühren. Zwei Intervalle berühren sich, wenn + * sie mindestens einen Punkt gemeinsam haben (inklusive den Intervallgrenzen). * - * @param interval - * ein anderes Interval. + * @param interval ein anderes Interval. * @return {@code true}, wenn dieses Intervall das andere berührt. */ public boolean touch(final Interval interval) { - return interval.contains(start) || interval.contains(end) - || contains(interval.start) || contains(interval.end); + return interval.contains(start) || interval.contains(end) || contains(interval.start) || contains(interval.end); } /** @@ -211,10 +192,9 @@ public boolean isTimestamp() { * Prüft ob sich ein anderes Intervall innerhalb der Intervallgrenzen dieses * Intervalls befindet. * - * @param interval - * ein Intervall. - * @return {@code true}, wenn das andere Intervall innerhalb dieses - * Intervalls liegt, aber nicht mit ihm identisch ist. + * @param interval ein Intervall. + * @return {@code true}, wenn das andere Intervall innerhalb dieses Intervalls + * liegt, aber nicht mit ihm identisch ist. */ public boolean isWithin(final Interval interval) { return isWithin(interval.start) && isWithin(interval.end); @@ -223,18 +203,17 @@ public boolean isWithin(final Interval interval) { /** * Prüft ob sich ein Wert innerhalb der Intervallgrenzen befindet. * - * @param value - * Ein Wert - * @return {@code true}, wenn der Wert innerhalb des Intervalls, aber nicht - * auf einer der Intervallgrenzen liegt + * @param value Ein Wert + * @return {@code true}, wenn der Wert innerhalb des Intervalls, aber nicht auf + * einer der Intervallgrenzen liegt */ public boolean isWithin(final long value) { return start < value && value < end; } /** - * Gibt das Intervall als für den Menschen lesbaren Text zurück. Handelt es - * sich um ein Zeitintervall, werden die Zeitstempel als Datum und Uhrzeit + * Gibt das Intervall als für den Menschen lesbaren Text zurück. Handelt es sich + * um ein Zeitintervall, werden die Zeitstempel als Datum und Uhrzeit * formatiert. * * {@inheritDoc} @@ -242,8 +221,7 @@ public boolean isWithin(final long value) { @Override public String toString() { if (timestamp) { - return "[" + Timestamp.absoluteTime(start) + ", " - + Timestamp.absoluteTime(end) + "]"; + return "[" + Timestamp.absoluteTime(start) + ", " + Timestamp.absoluteTime(end) + "]"; } return "[" + start + ", " + end + "]"; } diff --git a/src/main/java/com/bitctrl/util/ListChangedEvent.java b/src/main/java/com/bitctrl/util/ListChangedEvent.java index 216446c..ed8e7e8 100644 --- a/src/main/java/com/bitctrl/util/ListChangedEvent.java +++ b/src/main/java/com/bitctrl/util/ListChangedEvent.java @@ -34,8 +34,7 @@ * * @author BitCtrl Systems GmbH, Schumann * - * @param - * der Typ der geänderten Liste + * @param der Typ der geänderten Liste */ public class ListChangedEvent extends EventObject { @@ -48,16 +47,11 @@ public class ListChangedEvent extends EventObject { /** * Initialisierung. * - * @param source - * die Quelle des Events. - * @param indexFrom - * der erste Index der Änderungen - * @param indexTo - * der letzte Index der Änderungen - * @param added - * die Liste der hinzugefügten Elemente - * @param removed - * die Liste der entfernten Elemente + * @param source die Quelle des Events. + * @param indexFrom der erste Index der Änderungen + * @param indexTo der letzte Index der Änderungen + * @param added die Liste der hinzugefügten Elemente + * @param removed die Liste der entfernten Elemente */ public ListChangedEvent(final Object source, final int indexFrom, final int indexTo, final List added, final List removed) { diff --git a/src/main/java/com/bitctrl/util/ListChangedListener.java b/src/main/java/com/bitctrl/util/ListChangedListener.java index 8744dd0..e495cb2 100644 --- a/src/main/java/com/bitctrl/util/ListChangedListener.java +++ b/src/main/java/com/bitctrl/util/ListChangedListener.java @@ -33,24 +33,21 @@ * * @author BitCtrl Systems GmbH, Schumann * - * @param - * der Typ der Elemente in der Liste. + * @param der Typ der Elemente in der Liste. */ public interface ListChangedListener extends EventListener { /** * Wird aufgerufen, wenn sich die Liste geändert hat. * - * @param e - * das Event mit der Beschreibung der Änderung. + * @param e das Event mit der Beschreibung der Änderung. */ void listChanged(ListChangedEvent e); /** * Wird aufgerufen, wenn sich ein Element der Liste geändert hat. * - * @param e - * das Event mit der Beschreibung der Änderung. + * @param e das Event mit der Beschreibung der Änderung. */ void elementChanged(ListElementChangedEvent e); diff --git a/src/main/java/com/bitctrl/util/ListElementChangedEvent.java b/src/main/java/com/bitctrl/util/ListElementChangedEvent.java index 608976f..01f10cc 100644 --- a/src/main/java/com/bitctrl/util/ListElementChangedEvent.java +++ b/src/main/java/com/bitctrl/util/ListElementChangedEvent.java @@ -14,8 +14,7 @@ public class ListElementChangedEvent extends EventObject { private final T element; private final T previous; - public ListElementChangedEvent(final Object source, final int index, - final T element, final T previous) { + public ListElementChangedEvent(final Object source, final int index, final T element, final T previous) { super(source); this.index = index; diff --git a/src/main/java/com/bitctrl/util/ListIndexComparator.java b/src/main/java/com/bitctrl/util/ListIndexComparator.java index 1cb5c71..e834b9c 100644 --- a/src/main/java/com/bitctrl/util/ListIndexComparator.java +++ b/src/main/java/com/bitctrl/util/ListIndexComparator.java @@ -9,8 +9,7 @@ * * @author BitCtrl Systems GmbH, schnepel * - * @param - * der Typ der Listenelemente + * @param der Typ der Listenelemente */ public class ListIndexComparator implements Comparator { @@ -19,13 +18,13 @@ public class ListIndexComparator implements Comparator { /** * Konstruktor. * - * @param list - * die zu verwendende Liste + * @param list die zu verwendende Liste */ public ListIndexComparator(final List list) { this.list = list; } + @Override public int compare(final T o1, final T o2) { return list.indexOf(o1) - list.indexOf(o2); } diff --git a/src/main/java/com/bitctrl/util/NullObject.java b/src/main/java/com/bitctrl/util/NullObject.java index 4f58de0..97c5a3b 100644 --- a/src/main/java/com/bitctrl/util/NullObject.java +++ b/src/main/java/com/bitctrl/util/NullObject.java @@ -63,6 +63,7 @@ public String toString() { * * @return ein Text wie "null", "nichts", "nicht vorhanden" o. ä. */ + @Override String toString(); } diff --git a/src/main/java/com/bitctrl/util/ObservableList.java b/src/main/java/com/bitctrl/util/ObservableList.java index 6d1e645..a55ba00 100644 --- a/src/main/java/com/bitctrl/util/ObservableList.java +++ b/src/main/java/com/bitctrl/util/ObservableList.java @@ -44,8 +44,7 @@ * * @author BitCtrl Systems GmbH, Schumann * - * @param - * der Typ der Listenelemente + * @param der Typ der Listenelemente */ public class ObservableList implements List { @@ -55,8 +54,7 @@ public class ObservableList implements List { /** * Registriert einen Listener. * - * @param l - * der Listener. + * @param l der Listener. */ public void addListChangeListener(final ListChangedListener l) { listener.add(ListChangedListener.class, l); @@ -65,13 +63,13 @@ public void addListChangeListener(final ListChangedListener l) { /** * Meldet einen Listener wieder ab. * - * @param l - * der Listener. + * @param l der Listener. */ public void removeListChangeListener(final ListChangedListener l) { listener.remove(ListChangedListener.class, l); } + @Override public boolean add(final T e) { final int index = input.size(); final boolean b = input.add(e); @@ -82,68 +80,81 @@ public boolean add(final T e) { return b; } + @Override public void add(final int index, final T element) { input.add(index, element); fireAdded(index, element); } + @Override public boolean addAll(final Collection c) { final int index = input.size(); final boolean b = input.addAll(c); - fireAdded(index, input.size() - 1, new ArrayList(c)); + fireAdded(index, input.size() - 1, new ArrayList<>(c)); return b; } + @Override public boolean addAll(final int index, final Collection c) { final boolean b = input.addAll(index, c); - fireAdded(index, input.size() - 1, new ArrayList(c)); + fireAdded(index, input.size() - 1, new ArrayList<>(c)); return b; } + @Override public void clear() { - final List removed = new ArrayList(input); + final List removed = new ArrayList<>(input); input.clear(); fireRemoved(0, removed.size() - 1, removed); } + @Override public boolean contains(final Object o) { return input.contains(o); } + @Override public boolean containsAll(final Collection c) { return input.containsAll(c); } + @Override public T get(final int index) { return input.get(index); } + @Override public int indexOf(final Object o) { return input.indexOf(o); } + @Override public boolean isEmpty() { return input.isEmpty(); } + @Override public Iterator iterator() { - return new Iterator() { + return new Iterator<>() { private final Iterator iterator = input.iterator(); private T current; private int index = -1; + @Override public boolean hasNext() { return iterator.hasNext(); } + @Override public T next() { ++index; current = iterator.next(); return current; } + @Override public void remove() { iterator.remove(); fireRemoved(index, current); @@ -152,53 +163,64 @@ public void remove() { }; } + @Override public int lastIndexOf(final Object o) { return input.lastIndexOf(o); } + @Override public ListIterator listIterator() { - return new ListIterator() { + return new ListIterator<>() { private final ListIterator iterator = input.listIterator(); private T current; private int index = -1; + @Override public void add(final T e) { iterator.add(e); fireAdded(input.size() - 1, e); } + @Override public boolean hasNext() { return iterator.hasNext(); } + @Override public boolean hasPrevious() { return iterator.hasNext(); } + @Override public T next() { ++index; current = iterator.next(); return current; } + @Override public int nextIndex() { return iterator.nextIndex(); } + @Override public T previous() { return iterator.previous(); } + @Override public int previousIndex() { return iterator.previousIndex(); } + @Override public void remove() { iterator.remove(); fireRemoved(index, current); } + @Override public void set(final T e) { iterator.set(e); fireChanged(index, e, current); @@ -207,49 +229,59 @@ public void set(final T e) { }; } + @Override public ListIterator listIterator(final int index) { - return new ListIterator() { + return new ListIterator<>() { private final ListIterator iterator = input.listIterator(index); private T current; private int currentIndex = -1; + @Override public void add(final T e) { iterator.add(e); fireAdded(input.size() - 1, e); } + @Override public boolean hasNext() { return iterator.hasNext(); } + @Override public boolean hasPrevious() { return iterator.hasNext(); } + @Override public T next() { ++currentIndex; current = iterator.next(); return current; } + @Override public int nextIndex() { return iterator.nextIndex(); } + @Override public T previous() { return iterator.previous(); } + @Override public int previousIndex() { return iterator.previousIndex(); } + @Override public void remove() { iterator.remove(); fireRemoved(currentIndex, current); } + @Override public void set(final T e) { iterator.set(e); fireChanged(currentIndex, e, current); @@ -258,6 +290,7 @@ public void set(final T e) { }; } + @Override public boolean remove(final Object o) { final int index = indexOf(o); final boolean b = input.remove(o); @@ -265,12 +298,14 @@ public boolean remove(final Object o) { return b; } + @Override public T remove(final int index) { final T prev = input.remove(index); fireRemoved(index, prev); return prev; } + @Override public boolean removeAll(final Collection c) { final boolean b = input.retainAll(c); final List intersection = CollectionUtilities.intersection(input, new ArrayList(c)); @@ -279,8 +314,9 @@ public boolean removeAll(final Collection c) { return b; } + @Override public boolean retainAll(final Collection c) { - final List old = new ArrayList(input); + final List old = new ArrayList<>(input); final boolean b = input.retainAll(c); final List difference = CollectionUtilities.difference(old, input); @@ -288,24 +324,29 @@ public boolean retainAll(final Collection c) { return b; } + @Override public T set(final int index, final T element) { final T prev = input.set(index, element); fireChanged(index, element, prev); return prev; } + @Override public int size() { return input.size(); } + @Override public List subList(final int fromIndex, final int toIndex) { return input.subList(fromIndex, toIndex); } + @Override public Object[] toArray() { return input.toArray(); } + @Override public T0[] toArray(final T0[] a) { return input.toArray(a); } @@ -313,14 +354,12 @@ public T0[] toArray(final T0[] a) { /** * Signalisiert, das ein einzelnes Element hinzugefügt wurde. * - * @param index - * der Index der Änderung - * @param added - * das hinzugefügte Element + * @param index der Index der Änderung + * @param added das hinzugefügte Element */ protected synchronized void fireAdded(final int index, final T added) { - final ListChangedEvent e = new ListChangedEvent(this, index, index, Collections.singletonList(added), - new ArrayList()); + final ListChangedEvent e = new ListChangedEvent<>(this, index, index, Collections.singletonList(added), + new ArrayList<>()); for (final ListChangedListener l : listener.getListeners(ListChangedListener.class)) { l.listChanged(e); @@ -330,13 +369,11 @@ protected synchronized void fireAdded(final int index, final T added) { /** * Signalisiert, das ein einzelnes Element aus der Liste entfernt wurde. * - * @param index - * der Index der Änderung - * @param removed - * das entfernte Element + * @param index der Index der Änderung + * @param removed das entfernte Element */ protected synchronized void fireRemoved(final int index, final T removed) { - final ListChangedEvent e = new ListChangedEvent(this, index, index, new ArrayList(), + final ListChangedEvent e = new ListChangedEvent<>(this, index, index, new ArrayList<>(), Collections.singletonList(removed)); for (final ListChangedListener l : listener.getListeners(ListChangedListener.class)) { @@ -347,15 +384,12 @@ protected synchronized void fireRemoved(final int index, final T removed) { /** * Signalisiert, das ein einzelnes Element geändert wurde. * - * @param index - * der Index der Änderung - * @param element - * das neue Element - * @param previous - * das alte Element + * @param index der Index der Änderung + * @param element das neue Element + * @param previous das alte Element */ protected synchronized void fireChanged(final int index, final T element, final T previous) { - final ListElementChangedEvent e = new ListElementChangedEvent(this, index, element, previous); + final ListElementChangedEvent e = new ListElementChangedEvent<>(this, index, element, previous); for (final ListChangedListener l : listener.getListeners(ListChangedListener.class)) { l.elementChanged(e); @@ -363,7 +397,7 @@ protected synchronized void fireChanged(final int index, final T element, final } protected synchronized void fireAdded(final int indexFrom, final int indexTo, final List added) { - final ListChangedEvent e = new ListChangedEvent(this, indexFrom, indexTo, added, new ArrayList()); + final ListChangedEvent e = new ListChangedEvent<>(this, indexFrom, indexTo, added, new ArrayList<>()); for (final ListChangedListener l : listener.getListeners(ListChangedListener.class)) { l.listChanged(e); @@ -371,7 +405,7 @@ protected synchronized void fireAdded(final int indexFrom, final int indexTo, fi } protected synchronized void fireRemoved(final int indexFrom, final int indexTo, final List removed) { - final ListChangedEvent e = new ListChangedEvent(this, indexFrom, indexTo, new ArrayList(), removed); + final ListChangedEvent e = new ListChangedEvent<>(this, indexFrom, indexTo, new ArrayList<>(), removed); for (final ListChangedListener l : listener.getListeners(ListChangedListener.class)) { l.listChanged(e); diff --git a/src/main/java/com/bitctrl/util/Shifter.java b/src/main/java/com/bitctrl/util/Shifter.java index c011a14..78e0b8b 100644 --- a/src/main/java/com/bitctrl/util/Shifter.java +++ b/src/main/java/com/bitctrl/util/Shifter.java @@ -49,8 +49,7 @@ public class Shifter { * {@code maximas} bestimmt die Anzahl der Elemente im internen Feld des * Shifters. * - * @param maximas - * die maximalen Werte der einzelnen Feldelemente. + * @param maximas die maximalen Werte der einzelnen Feldelemente. */ public Shifter(final int... maximas) { this.maximas = maximas.clone(); @@ -62,8 +61,7 @@ public Shifter(final int... maximas) { * {@code maximas} bestimmt die Anzahl der Elemente im internen Feld des * Shifters. * - * @param maximas - * die maximalen Werte der einzelnen Feldelemente. + * @param maximas die maximalen Werte der einzelnen Feldelemente. */ public Shifter(final List maximas) { this.maximas = new int[maximas.size()]; @@ -105,8 +103,7 @@ public int[] getValues() { * Setzt den aktuellen Zustands des internen Felds. Die Länge des Felds im * Parameter muss mit der des internen Felds übereinstimmen. * - * @param values - * die neuen Werte. + * @param values die neuen Werte. */ public void setValues(final int[] values) { if (values.length != this.values.length) { @@ -116,19 +113,17 @@ public void setValues(final int[] values) { for (int i = 0; i < values.length; ++i) { if (values[i] > maximas[i]) { - throw new IllegalArgumentException("Der Wert (" + values[i] - + ") des Elements mit dem Index " + i - + " ist größer als sein erlaubtes Maximum (" - + maximas[i] + ")."); + throw new IllegalArgumentException("Der Wert (" + values[i] + ") des Elements mit dem Index " + i + + " ist größer als sein erlaubtes Maximum (" + maximas[i] + ")."); } this.values[i] = values[i]; } } /** - * Shiften das interne Feld um eine Kombination weiter. Das Shiften erfolgt - * von hinten nach vorne, d. h. zuerst wird das Element mit dem größten - * Index und zu letzt das Element mit dem kleinsten Index geshiftet. + * Shiften das interne Feld um eine Kombination weiter. Das Shiften erfolgt von + * hinten nach vorne, d. h. zuerst wird das Element mit dem größten Index + * und zu letzt das Element mit dem kleinsten Index geshiftet. * * @return {@code true}, wenn das Shiften ohne Überlauf stattfand und * {@code false}, wenn das das interne Feld einmal komplett @@ -153,12 +148,12 @@ public String toString() { final List helperValues, helperMaximas; String s; - helperValues = new ArrayList(); + helperValues = new ArrayList<>(); for (final int i : values) { helperValues.add(i); } - helperMaximas = new ArrayList(); + helperMaximas = new ArrayList<>(); for (final int i : values) { helperMaximas.add(i); } diff --git a/src/main/java/com/bitctrl/util/Timestamp.java b/src/main/java/com/bitctrl/util/Timestamp.java index 78ce538..c7a95b5 100644 --- a/src/main/java/com/bitctrl/util/Timestamp.java +++ b/src/main/java/com/bitctrl/util/Timestamp.java @@ -47,8 +47,7 @@ public class Timestamp implements Serializable { /** * Konvertiert einen Zeitstempel in eine lesbare absolute Zeitangabe. * - * @param zeitstempel - * ein Zeitstempel. + * @param zeitstempel ein Zeitstempel. * @return die entsprechende Zeit als lesbaren String. */ public static String absoluteTime(final long zeitstempel) { @@ -58,24 +57,19 @@ public static String absoluteTime(final long zeitstempel) { /** * Konvertiert einen Zeitstempel in eine lesbare absolute Zeitangabe. * - * @param zeitstempel - * ein Zeitstempel. - * @param date - * Flag, ob das Datum mit ausgegeben werden soll. - * @param time - * Falg, ob die Zeit mit ausgegeben werden soll. + * @param zeitstempel ein Zeitstempel. + * @param date Flag, ob das Datum mit ausgegeben werden soll. + * @param time Falg, ob die Zeit mit ausgegeben werden soll. * @return die entsprechende Zeit als lesbaren String. */ - public static String absoluteTime(final long zeitstempel, - final boolean date, final boolean time) { + public static String absoluteTime(final long zeitstempel, final boolean date, final boolean time) { return new Timestamp(zeitstempel).absoluteTime(date, time); } /** * Konvertiert einen Zeitstempel in eine lesbare relative Zeitangabe. * - * @param zeitstempel - * ein Zeitstempel. + * @param zeitstempel ein Zeitstempel. * @return die entsprechende Zeit als lesbaren String. */ public static String relativeTime(final long zeitstempel) { @@ -95,47 +89,39 @@ public Timestamp() { /** * Erzeugt eine Zeitangabe. * - * @param time - * der Zeitwert. + * @param time der Zeitwert. */ public Timestamp(final long time) { timestamp = time; } /** - * Generiert einen Zeitstempel anhand eines Strings in Kodierung nach ISO - * 8601. Es wird das Format "yyyy-MM-dd'T'HH:mm:ss,SSSZ" verwendet, - * z. B. 2008-04-24T22:08:15,124+0100 für den 24. April 2008 um - * 22:08:15,124 mitteleuropäischer Zeit (GMT + 1 Stunde). + * Generiert einen Zeitstempel anhand eines Strings in Kodierung nach ISO 8601. + * Es wird das Format "yyyy-MM-dd'T'HH:mm:ss,SSSZ" verwendet, z. B. + * 2008-04-24T22:08:15,124+0100 für den 24. April 2008 um 22:08:15,124 + * mitteleuropäischer Zeit (GMT + 1 Stunde). * - * @param iso8601 - * eine Zeitangabe nach ISO 8601. - * @throws ParseException - * bei einem ungültigen String. + * @param iso8601 eine Zeitangabe nach ISO 8601. + * @throws ParseException bei einem ungültigen String. */ public Timestamp(final String iso8601) throws ParseException { long t; try { - t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSSZ").parse( - iso8601).getTime(); + t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSSZ").parse(iso8601).getTime(); } catch (final ParseException ex1) { try { - t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSS").parse( - iso8601).getTime(); + t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss,SSS").parse(iso8601).getTime(); } catch (final ParseException ex2) { try { - t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse( - iso8601).getTime(); + t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(iso8601).getTime(); } catch (final ParseException ex3) { try { - t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm").parse( - iso8601) + t = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm").parse(iso8601) - .getTime(); - } catch (final ParseException ex4) { - t = new SimpleDateFormat("yyyy-MM-dd").parse(iso8601) .getTime(); + } catch (final ParseException ex4) { + t = new SimpleDateFormat("yyyy-MM-dd").parse(iso8601).getTime(); } } } @@ -148,21 +134,16 @@ public Timestamp(final String iso8601) throws ParseException { * Generiert einen Zeitstempel anhand eines Strings in Kodierung nach * ISO 8601. Es wird dabei das übergebene Format verwendet. * - * @param iso8601 - * eine Zeitangabe nach ISO 8601. - * @param pattern - * das zu verwendende Stringmuster. - * @throws ParseException - * bei einem ungültigen String. + * @param iso8601 eine Zeitangabe nach ISO 8601. + * @param pattern das zu verwendende Stringmuster. + * @throws ParseException bei einem ungültigen String. */ - public Timestamp(final String iso8601, final String pattern) - throws ParseException { + public Timestamp(final String iso8601, final String pattern) throws ParseException { long t; try { - t = new SimpleDateFormat(pattern, Locale.ENGLISH).parse(iso8601) - .getTime(); + t = new SimpleDateFormat(pattern, Locale.ENGLISH).parse(iso8601).getTime(); } catch (final ParseException ex) { t = new Timestamp(iso8601).getTime(); } @@ -174,17 +155,12 @@ public Timestamp(final String iso8601, final String pattern) * Generiert einen Zeitstempel anhand eines Strings in Kodierung nach * ISO 8601. Es wird dabei das übergebene Format verwendet. * - * @param iso8601 - * eine Zeitangabe nach ISO 8601. - * @param pattern - * das zu verwendende Stringmuster. - * @param local - * die Sprachumgebung - * @throws ParseException - * bei einem ungültigen String. + * @param iso8601 eine Zeitangabe nach ISO 8601. + * @param pattern das zu verwendende Stringmuster. + * @param local die Sprachumgebung + * @throws ParseException bei einem ungültigen String. */ - public Timestamp(final String iso8601, final String pattern, - final Locale local) throws ParseException { + public Timestamp(final String iso8601, final String pattern, final Locale local) throws ParseException { long t; @@ -220,12 +196,10 @@ public String absoluteTime() { * Gibt den Wert der Zeitangabe als lesbaren absoluten Wert zurück. Für die * Konvertierung wird das aktuelle {@link java.util.Locale} genutzt. * - * @param date - * Flag, ob das Datum mit ausgegeben werden soll. - * @param time - * Falg, ob die Zeit mit ausgegeben werden soll. - * @return die absolute Zeitangabe oder ein leerer String, wenn beide - * Parameter {@code false} sind. + * @param date Flag, ob das Datum mit ausgegeben werden soll. + * @param time Falg, ob die Zeit mit ausgegeben werden soll. + * @return die absolute Zeitangabe oder ein leerer String, wenn beide Parameter + * {@code false} sind. */ public String absoluteTime(final boolean date, final boolean time) { if (date && time) { @@ -244,8 +218,8 @@ public String absoluteTime(final boolean date, final boolean time) { } /** - * Gibt den Wert der Zeitangabe als lesbaren relativen Wert zurück. Für - * negative Zeitstempel wird {@code null} zurückgegeben. + * Gibt den Wert der Zeitangabe als lesbaren relativen Wert zurück. Für negative + * Zeitstempel wird {@code null} zurückgegeben. * * @return die relative Zeitangabe. */ @@ -257,14 +231,10 @@ public String relativeTime() { final StringBuffer result = new StringBuffer(); long remainder = timestamp; - remainder = remainder(result, remainder, Constants.MILLIS_PER_DAY, - "Tage"); - remainder = remainder(result, remainder, Constants.MILLIS_PER_HOUR, - "Stunden"); - remainder = remainder(result, remainder, Constants.MILLIS_PER_MINUTE, - "Minuten"); - remainder = remainder(result, remainder, Constants.MILLIS_PER_SECOND, - "Sekunden"); + remainder = remainder(result, remainder, Constants.MILLIS_PER_DAY, "Tage"); + remainder = remainder(result, remainder, Constants.MILLIS_PER_HOUR, "Stunden"); + remainder = remainder(result, remainder, Constants.MILLIS_PER_MINUTE, "Minuten"); + remainder = remainder(result, remainder, Constants.MILLIS_PER_SECOND, "Sekunden"); remainder(result, remainder, 1, "Millisekunden"); if (result.length() <= 0) { @@ -277,8 +247,7 @@ public String relativeTime() { /** * Gibt den Wert der Zeitangabe als lesbaren relativen Wert zurück. * - * @param trenner - * der zu verwendende Trenner. + * @param trenner der zu verwendende Trenner. * * @return die relative Zeitangabe. */ @@ -294,23 +263,19 @@ public String relativeTime(final String trenner) { final StringBuffer result = new StringBuffer(); long remainder = timestamp; - remainder = remainder(result, remainder, Constants.MILLIS_PER_HOUR, "", - trenner); - remainder = remainder(result, remainder, Constants.MILLIS_PER_MINUTE, - "", trenner); - remainder = remainder(result, remainder, Constants.MILLIS_PER_SECOND, - "", trenner); + remainder = remainder(result, remainder, Constants.MILLIS_PER_HOUR, "", trenner); + remainder = remainder(result, remainder, Constants.MILLIS_PER_MINUTE, "", trenner); + remainder = remainder(result, remainder, Constants.MILLIS_PER_SECOND, "", trenner); return result.toString(); } - private long remainder(final StringBuffer result, final long remainder, - final long factor, final String measure) { + private long remainder(final StringBuffer result, final long remainder, final long factor, final String measure) { return remainder(result, remainder, factor, measure, " "); } - private long remainder(final StringBuffer result, final long remainder, - final long factor, final String measure, final String pattern) { + private long remainder(final StringBuffer result, final long remainder, final long factor, final String measure, + final String pattern) { final long part = remainder / factor; if (part > 0) { if (result.length() > 0) { @@ -328,9 +293,7 @@ public boolean equals(final Object obj) { if (obj == this) { return true; } - if (obj instanceof Timestamp) { - final Timestamp o = (Timestamp) obj; - + if (obj instanceof final Timestamp o) { return o.timestamp == timestamp; } return false; diff --git a/src/main/java/com/bitctrl/util/TreeProperties.java b/src/main/java/com/bitctrl/util/TreeProperties.java index df5a0c3..a239555 100644 --- a/src/main/java/com/bitctrl/util/TreeProperties.java +++ b/src/main/java/com/bitctrl/util/TreeProperties.java @@ -48,7 +48,7 @@ */ public class TreeProperties extends Properties implements WritableConfiguration { - private class Group { + private static class Group { private final String name; private int index; @@ -57,8 +57,7 @@ private class Group { /** * Erzeugt eine Gruppe. * - * @param name - * der Name der Gruppe + * @param name der Name der Gruppe */ public Group(final String name) { this.name = name; @@ -69,10 +68,8 @@ public Group(final String name) { /** * Erzeugt ein Feld. * - * @param name - * der Name des Feldes - * @param guessArraySize - * {@code true}, wenn die Feldgröße mit gespeichert wird. + * @param name der Name des Feldes + * @param guessArraySize {@code true}, wenn die Feldgröße mit gespeichert wird. */ public Group(final String name, final boolean guessArraySize) { this.name = name; @@ -83,8 +80,8 @@ public Group(final String name, final boolean guessArraySize) { /** * Gibt die aktuelle Feldgröße zurück. * - * @return die aktuelle Größe des Feldes oder {@code -1}, wenn die - * Feldgröße unbekannt ist oder es sich um eine Gruppe handelt. + * @return die aktuelle Größe des Feldes oder {@code -1}, wenn die Feldgröße + * unbekannt ist oder es sich um eine Gruppe handelt. */ public int arraySizeGuess() { return arraySize; @@ -111,8 +108,8 @@ public String getName() { /** * Fragt, ob dies ein Feld ist. * - * @return {@code true}, wenn es ein Feld ist und {@code false}, wenn es - * ein einfache Gruppe ist. + * @return {@code true}, wenn es ein Feld ist und {@code false}, wenn es ein + * einfache Gruppe ist. */ public boolean isArray() { return index != -1; @@ -121,8 +118,7 @@ public boolean isArray() { /** * Legt den aktuellen Feldindex fest. * - * @param index - * der Index. + * @param index der Index. */ public void setIndex(final int index) { this.index = index + 1; @@ -133,13 +129,13 @@ public void setIndex(final int index) { @Override public String toString() { - String s = name + "."; + final StringBuilder s = new StringBuilder().append(name).append("."); if (index > 0) { - s += index + "."; + s.append(index).append("."); } - return s; + return s.toString(); } } @@ -157,7 +153,7 @@ private static void writeln(final BufferedWriter bw, final String s) throws IOEx bw.newLine(); } - private final Stack stack = new Stack(); + private final Stack stack = new Stack<>(); private String trace = ""; @@ -171,17 +167,18 @@ public TreeProperties() { /** * Erzeugt eine leere Properties-Liste mit Standardwerten. * - * @param defaults - * die Standardwerte. + * @param defaults die Standardwerte. */ public TreeProperties(final TreeProperties defaults) { super(defaults); } + @Override public void beginGroup(final String name) { beginGroupOrArray(new Group(name)); } + @Override public int beginReadArray(final String name) { beginGroupOrArray(new Group(name, false)); if (getProperty("size") != null) { @@ -190,10 +187,12 @@ public int beginReadArray(final String name) { return 0; } + @Override public void beginWriteArray(final String name) { beginWriteArray(name, -1); } + @Override public void beginWriteArray(final String name, final int size) { beginGroupOrArray(new Group(name, size < 0)); @@ -204,6 +203,7 @@ public void beginWriteArray(final String name, final int size) { } } + @Override public void endArray(final String name) { final Group group = stack.pop(); @@ -223,6 +223,7 @@ public void endArray(final String name) { } } + @Override public void endGroup(final String name) { final Group group = stack.pop(); @@ -238,34 +239,42 @@ public void endGroup(final String name) { } } + @Override public boolean getBoolean(final String key) { return getBoolean(key, DEFAULT_BOOLEAN); } + @Override public boolean getBoolean(final String key, final boolean defaultValue) { return Boolean.valueOf(getProperty(key, String.valueOf(defaultValue))); } + @Override public double getDouble(final String key) { return getDouble(key, DEFAULT_DOUBLE); } + @Override public double getDouble(final String key, final double defaultValue) { return Double.valueOf(getProperty(key, String.valueOf(defaultValue))); } + @Override public int getInt(final String key) { return getInt(key, DEFAULT_INT); } + @Override public int getInt(final String key, final int defaultValue) { return Integer.parseInt(getProperty(key, String.valueOf(defaultValue))); } + @Override public long getLong(final String key) { return getInt(key, DEFAULT_LONG); } + @Override public long getLong(final String key, final long defaultValue) { return Long.parseLong(getProperty(key, String.valueOf(defaultValue))); } @@ -281,10 +290,12 @@ public String getProperty(final String key, final String defaultValue) { return val == null ? defaultValue : val; } + @Override public String getString(final String key) { return getString(key, DEFAULT_STRING); } + @Override public String getString(final String key, final String defaultValue) { return getProperty(key, defaultValue); } @@ -303,26 +314,32 @@ public synchronized Object remove(final Object key) { return super.remove(getAbsoluteKey(key.toString())); } + @Override public void set(final String key, final boolean value) { setProperty(key, String.valueOf(value)); } + @Override public void set(final String key, final double value) { setProperty(key, String.valueOf(value)); } + @Override public void set(final String key, final int value) { setProperty(key, String.valueOf(value)); } + @Override public void set(final String key, final long value) { setProperty(key, String.valueOf(value)); } + @Override public void set(final String key, final String value) { setProperty(key, value); } + @Override public void setArrayIndex(final int index) { final Group group = stack.peek(); int length; @@ -358,7 +375,7 @@ public synchronized void store(final OutputStream out, final String comments) th } writeln(awriter, "#" + new Date().toString()); - final SortedSet keys = new TreeSet(); + final SortedSet keys = new TreeSet<>(); for (final Object o : keySet()) { keys.add(o.toString()); } @@ -368,8 +385,8 @@ public synchronized void store(final OutputStream out, final String comments) th key = saveConvert(key, true); /* - * No need to escape embedded and trailing spaces for value, hence - * pass false to flag. + * No need to escape embedded and trailing spaces for value, hence pass false to + * flag. */ val = saveConvert(val, false); writeln(awriter, key + "=" + val); @@ -505,10 +522,11 @@ private String saveConvert(final String theString, final boolean escapeSpace) { * * TODO Mit Umstellung auf Java 6 des Projekts vereinfachen! */ + @Override public Set stringPropertyNames() { // return configuration.stringPropertyNames(); - final Set keys = new HashSet(); + final Set keys = new HashSet<>(); for (final Object key : keySet()) { if (key instanceof String) { keys.add((String) key); @@ -517,6 +535,7 @@ public Set stringPropertyNames() { return keys; } + @Override public boolean containsKey(final String key) { return contains(getAbsoluteKey(key)) || contains(key); } diff --git a/src/main/java/com/bitctrl/util/Triple.java b/src/main/java/com/bitctrl/util/Triple.java index 082fb45..1484645 100644 --- a/src/main/java/com/bitctrl/util/Triple.java +++ b/src/main/java/com/bitctrl/util/Triple.java @@ -5,13 +5,11 @@ * * @author BitCtrl Systems GmbH, schnepel * - * @param - * type of first object - * @param - * type of second object - * @param - * type of third object + * @param type of first object + * @param type of second object + * @param type of third object */ +@Deprecated(since = "3.0.0", forRemoval = true) public class Triple { /** * the first object @@ -31,12 +29,9 @@ public class Triple { /** * Constructs a Triple of objects of different types. * - * @param a - * the first object - * @param b - * the second object - * @param c - * the third object + * @param a the first object + * @param b the second object + * @param c the third object */ public Triple(final A a, final B b, final C c) { this.a = a; @@ -47,30 +42,23 @@ public Triple(final A a, final B b, final C c) { /** * Constructs a Triple of objects of different types. * - * @param - * type of first object - * @param - * type of second object - * @param - * type of third object - * @param a - * the first object - * @param b - * the second object - * @param c - * the third object + * @param type of first object + * @param type of second object + * @param type of third object + * @param a the first object + * @param b the second object + * @param c the third object * @return das erzeugte Triple */ public static final Triple create(final A a, final B b, final C c) { - return new Triple(a, b, c); + return new Triple<>(a, b, c); } @Override public boolean equals(final Object obj) { - if (!(obj instanceof Triple)) { + if (!(obj instanceof final Triple o2)) { return false; } - final Triple o2 = (Triple) obj; return equals(a, o2.a) && equals(b, o2.b) && equals(c, o2.c); } diff --git a/src/main/java/com/bitctrl/util/Tupel.java b/src/main/java/com/bitctrl/util/Tupel.java index 3950ec9..d039b3c 100644 --- a/src/main/java/com/bitctrl/util/Tupel.java +++ b/src/main/java/com/bitctrl/util/Tupel.java @@ -5,11 +5,10 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ des ersten Elements. - * @param - * der Typ des zweiten Elements. + * @param der Typ des ersten Elements. + * @param der Typ des zweiten Elements. */ +@Deprecated(since = "3.0.0", forRemoval = true) public class Tupel { private S1 first; @@ -25,10 +24,8 @@ public Tupel() { /** * Initialisierten die beiden Elemente. * - * @param first - * das erste Element. - * @param second - * das zweite Element. + * @param first das erste Element. + * @param second das zweite Element. */ public Tupel(final S1 first, final S2 second) { this.first = first; @@ -56,13 +53,10 @@ public boolean equals(final Object obj) { if (obj == this) { return true; } - if (obj instanceof Tupel) { - final Tupel other = (Tupel) obj; + if (obj instanceof final Tupel other) { boolean equals = true; - equals &= first != null && first.equals(other.first) - || first == other.first; - equals &= second != null && second.equals(other.second) - || second == other.second; + equals &= first != null && first.equals(other.first) || first == other.first; + equals &= second != null && second.equals(other.second) || second == other.second; return equals; } return false; @@ -71,8 +65,7 @@ public boolean equals(final Object obj) { @Override public int hashCode() { - return (null != first ? first.hashCode() : 0) - ^ (null != second ? second.hashCode() : 0); + return (null != first ? first.hashCode() : 0) ^ (null != second ? second.hashCode() : 0); } @Override diff --git a/src/main/java/com/bitctrl/util/TwoDimensionalMap.java b/src/main/java/com/bitctrl/util/TwoDimensionalMap.java index b96570b..de644bd 100644 --- a/src/main/java/com/bitctrl/util/TwoDimensionalMap.java +++ b/src/main/java/com/bitctrl/util/TwoDimensionalMap.java @@ -8,11 +8,11 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; -import java.util.Map.Entry; /** * Provides a two-dimensional map. @@ -20,12 +20,9 @@ * The data entry matrix are automatically filled up so that every row * respective every column has the same size. * - * @param - * the key type for the rows - * @param - * the key type for the columns - * @param - * the value type + * @param the key type for the rows + * @param the key type for the columns + * @param the value type * * @author BitCtrl Systems GmbH, schnepel */ @@ -34,7 +31,7 @@ public class TwoDimensionalMap implements Serializable, ITwoDimensional private final Map rows; private final Map columns; - private final ArrayList> data = new ArrayList>(); + private final ArrayList> data = new ArrayList<>(); private final boolean orderedRows; private final boolean orderedColumns; @@ -42,41 +39,39 @@ public TwoDimensionalMap(final boolean orderedRows, final boolean orderedColumns this.orderedRows = orderedRows; this.orderedColumns = orderedColumns; if (orderedRows) { - rows = new TreeMap(); + rows = new TreeMap<>(); } else { - rows = new LinkedHashMap(); + rows = new LinkedHashMap<>(); } if (orderedColumns) { - columns = new TreeMap(); + columns = new TreeMap<>(); } else { - columns = new LinkedHashMap(); + columns = new LinkedHashMap<>(); } } /** - * Erezeugt eine neue {@link TwoDimensionalMap} mit eigenen - * {@link Comparator}en für Zeilen und Spalten. Wird als {@link Comparator} - * null übergeben, dann wird nicht sortiert. + * Erezeugt eine neue {@link TwoDimensionalMap} mit eigenen {@link Comparator}en + * für Zeilen und Spalten. Wird als {@link Comparator} null + * übergeben, dann wird nicht sortiert. * - * @param rowComparator - * der Comparator die Zeilen der Map - * @param columnComparator - * der Comparator die Spalten der Map + * @param rowComparator der Comparator die Zeilen der Map + * @param columnComparator der Comparator die Spalten der Map */ public TwoDimensionalMap(final Comparator rowComparator, final Comparator columnComparator) { if (rowComparator != null) { - rows = new TreeMap(rowComparator); + rows = new TreeMap<>(rowComparator); orderedRows = true; } else { - rows = new LinkedHashMap(); + rows = new LinkedHashMap<>(); orderedRows = false; } if (columnComparator != null) { - columns = new TreeMap(columnComparator); + columns = new TreeMap<>(columnComparator); orderedColumns = true; } else { - columns = new LinkedHashMap(); + columns = new LinkedHashMap<>(); orderedColumns = false; } @@ -84,6 +79,7 @@ public TwoDimensionalMap(final Comparator rowComparator, final Comparator // row stuff ... + @Override public Set getRowKeys() { final Set keySet = rows.keySet(); if (orderedRows) { @@ -92,6 +88,7 @@ public Set getRowKeys() { return Collections.unmodifiableSet(keySet); } + @Override public Collection getRow(final R row) { return Collections.unmodifiableCollection(getRowInternal(row)); } @@ -102,7 +99,7 @@ private List getRowInternal(final R row) { addRow(row); rIndex = rows.get(row); } - final ArrayList retData = new ArrayList(columns.size()); + final ArrayList retData = new ArrayList<>(columns.size()); final ArrayList rData = data.get(rIndex); for (final Integer cIndex : columns.values()) { retData.add(rData.get(cIndex)); @@ -110,13 +107,15 @@ private List getRowInternal(final R row) { return retData; } + @Override public void addRow(final R row) { - final ArrayList retData = new ArrayList(columns.size()); + final ArrayList retData = new ArrayList<>(columns.size()); rows.put(row, rows.size()); retData.addAll(Collections.nCopies(columns.size(), (D) null)); data.add(retData); } + @Override public Collection removeRow(final R row) { final Integer rIndex = rows.remove(row); if (null == rIndex) { @@ -138,6 +137,7 @@ public boolean containsRowKey(final R row) { // column stuff ... + @Override public Set getColumnKeys() { final Set keySet = columns.keySet(); if (orderedColumns) { @@ -146,6 +146,7 @@ public Set getColumnKeys() { return Collections.unmodifiableSet(keySet); } + @Override public Collection getColumn(final C column) { return Collections.unmodifiableCollection(getColumnInternal(column)); } @@ -156,13 +157,14 @@ private List getColumnInternal(final C column) { addColumn(column); cIndex = columns.get(column); } - final ArrayList cData = new ArrayList(rows.size()); + final ArrayList cData = new ArrayList<>(rows.size()); for (final Integer rIndex : rows.values()) { cData.add(data.get(rIndex).get(cIndex)); } return cData; } + @Override public void addColumn(final C column) { columns.put(column, columns.size()); for (final ArrayList rowsData : data) { @@ -176,7 +178,7 @@ public Collection removeColumn(final C column) { throw new NoSuchElementException(); } ArrayList cData = null; - cData = new ArrayList(rows.size()); + cData = new ArrayList<>(rows.size()); for (final ArrayList rowsData : data) { cData.add(rowsData.remove(cIndex.intValue())); } @@ -195,6 +197,7 @@ public boolean containsColumnKey(final C column) { // other stuff ... + @Override public D put(final R row, final C column, final D value) { Integer cIndex = columns.get(column); if (null == cIndex) { @@ -209,6 +212,7 @@ public D put(final R row, final C column, final D value) { return this.data.get(rIndex).set(cIndex, value); } + @Override public D get(final R row, final C column) { Integer cIndex = columns.get(column); if (null == cIndex) { @@ -223,8 +227,9 @@ public D get(final R row, final C column) { return this.data.get(rIndex).get(cIndex); } + @Override public Collection values() { - final ArrayList values = new ArrayList(rows.size() * columns.size()); + final ArrayList values = new ArrayList<>(rows.size() * columns.size()); for (final ArrayList ld : data) { values.addAll(ld); } diff --git a/src/main/java/com/bitctrl/util/ValueMatcher.java b/src/main/java/com/bitctrl/util/ValueMatcher.java index fee413b..c7d4185 100644 --- a/src/main/java/com/bitctrl/util/ValueMatcher.java +++ b/src/main/java/com/bitctrl/util/ValueMatcher.java @@ -29,7 +29,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Iterator; import java.util.regex.Pattern; import com.bitctrl.Constants; @@ -41,16 +40,14 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ public interface ValueMatcher { /** * Für Instanzen dieser Klasse matchen alle Werte. * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ static class AlwaysMatcher implements ValueMatcher { @@ -59,6 +56,7 @@ static class AlwaysMatcher implements ValueMatcher { * * {@inheritDoc} */ + @Override public boolean match(final T value) { return true; } @@ -68,8 +66,7 @@ public boolean match(final T value) { /** * Für Instanzen dieser Klasse matchen alle Werte ungleich {@code null}. * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ static class NotNullMatcher implements ValueMatcher { @@ -78,6 +75,7 @@ static class NotNullMatcher implements ValueMatcher { * * {@inheritDoc} */ + @Override public boolean match(final T value) { return value != null; } @@ -85,46 +83,43 @@ public boolean match(final T value) { } /** - * Instanzen dieser Klassen prüfen anhand einer {@link Collection} oder - * eines Feldes, ob Werte matchen. Alle in der Menge enthalten Werte - * matchen, alle nicht enthaltenen matchen nicht. + * Instanzen dieser Klassen prüfen anhand einer {@link Collection} oder eines + * Feldes, ob Werte matchen. Alle in der Menge enthalten Werte matchen, alle + * nicht enthaltenen matchen nicht. * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ static class CollectionValueMatcher implements ValueMatcher { private final Collection collection; /** - * Verwendet die übergebene {@link Collection} zum matchen. Es wird nur - * die Referenz der {@link Collection} benutzt und keine Kopien - * erstellt. + * Verwendet die übergebene {@link Collection} zum matchen. Es wird nur die + * Referenz der {@link Collection} benutzt und keine Kopien erstellt. * - * @param collection - * eine beliebige Collection. + * @param collection eine beliebige Collection. */ public CollectionValueMatcher(final Collection collection) { this.collection = collection; } /** - * Verwendet eine Feld zum matchen. Das Feld intern als - * {@link java.util.List} gehalten. + * Verwendet eine Feld zum matchen. Das Feld intern als {@link java.util.List} + * gehalten. * - * @param values - * ein beliebiges Feld. + * @param values ein beliebiges Feld. */ public CollectionValueMatcher(final T... values) { collection = Arrays.asList(values); } /** - * Gibt {@code true}, wenn der Wert in der {@code Collection} enthalten - * ist und {@code false}, wenn der Wert nicht enthalten ist. + * Gibt {@code true}, wenn der Wert in der {@code Collection} enthalten ist und + * {@code false}, wenn der Wert nicht enthalten ist. * * {@inheritDoc} */ + @Override public boolean match(final T value) { return collection.contains(value); } @@ -146,11 +141,9 @@ public String toString() { * Für Instanzen dieser Klasse matchen alle Werte, für die alle gekapselten * {@link ValueMatcher} matchen. * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ - static class ComplexMatcher extends ArrayList> implements - ValueMatcher { + static class ComplexMatcher extends ArrayList> implements ValueMatcher { private static final long serialVersionUID = 1L; @@ -160,10 +153,10 @@ static class ComplexMatcher extends ArrayList> implements * Gibt nur dann {@code false} zurück, wenn mindestens ein registrierter * {@code ValueMatcher} nicht matcht. */ + @Override public boolean match(final T value) { - final Iterator> iterator = iterator(); - while (iterator.hasNext()) { - if (!iterator.next().match(value)) { + for (final ValueMatcher element : this) { + if (!element.match(value)) { return false; } } @@ -181,9 +174,10 @@ static class StringNotEmptyMatcher implements ValueMatcher { /** * {@inheritDoc} * - * Gibt {@code true} zurück, wenn der Wert ungleich {@code null} und - * ungleich {@code ""} ist. + * Gibt {@code true} zurück, wenn der Wert ungleich {@code null} und ungleich + * {@code ""} ist. */ + @Override public boolean match(final String value) { return value != null && value.length() > 0; } @@ -201,28 +195,29 @@ static class EmailMatcher implements ValueMatcher { * Gibt {@code true} zurück, wenn der Wert eine gültige E-Mail-Adresse * darstellt. */ + @Override public boolean match(final String value) { - return value != null - && Pattern.matches(Constants.REGEX_MAIL, value); + return value != null && Pattern.matches(Constants.REGEX_MAIL, value); } } /** - * Für Instanzen dieser Klasse matchen alle Werte, die zu gültige Password - * (mind 6 Zeichen, 2 davon digits) darstellen. + * Für Instanzen dieser Klasse matchen alle Werte, die zu gültige Password (mind + * 6 Zeichen, 2 davon digits) darstellen. */ static class PasswdMatcher implements ValueMatcher { + @Override public boolean match(final String value) { - return value != null && Pattern.matches("^[a-zA-Z0-9]{6,}$", value) //$NON-NLS-1$ - && Pattern.matches(".*[0-9].*[0-9].*", value); //$NON-NLS-1$ + return value != null && Pattern.matches("^[a-zA-Z0-9]{6,}$", value) //$NON-NLS-1$ + && Pattern.matches(".*[0-9].*[0-9].*", value); //$NON-NLS-1$ } } /** - * Für Instanzen dieser Klasse matchen alle Werte, die mit einem - * festgelegten regulären matchen. + * Für Instanzen dieser Klasse matchen alle Werte, die mit einem festgelegten + * regulären matchen. */ static class RegExMatcher implements ValueMatcher { @@ -231,8 +226,7 @@ static class RegExMatcher implements ValueMatcher { /** * Legt den regulären Ausdruck fest, gegen den geprüft werden soll. * - * @param regex - * ein regulärer Ausdruck. + * @param regex ein regulärer Ausdruck. */ public RegExMatcher(final String regex) { this.regex = regex; @@ -241,9 +235,10 @@ public RegExMatcher(final String regex) { /** * {@inheritDoc} * - * Gibt {@code true} zurück, wenn der Wert mit dem festgelegtem - * regulären Ausdruck matcht. + * Gibt {@code true} zurück, wenn der Wert mit dem festgelegtem regulären + * Ausdruck matcht. */ + @Override public boolean match(final String value) { return value != null && Pattern.matches(regex, value); } @@ -253,8 +248,7 @@ public boolean match(final String value) { * Für Instanzen dieser Klasse matchen alle Werte, die in einem festgelegten * Intervall liegen. Die Intervallgrenzen gehören mit zu dem Intervall. * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ static class RangeMatcher implements ValueMatcher { @@ -264,10 +258,8 @@ static class RangeMatcher implements ValueMatcher { /** * Definiert das Intervall. * - * @param min - * das Minimum des Intervalls. - * @param max - * das Maximum des Intervalls. + * @param min das Minimum des Intervalls. + * @param max das Maximum des Intervalls. */ public RangeMatcher(final Comparable min, final Comparable max) { this.min = min; @@ -277,12 +269,12 @@ public RangeMatcher(final Comparable min, final Comparable max) { /** * {@inheritDoc} * - * Gibt {@code true} zurück, wenn der Wert innerhalb des definierten - * Intervalls oder auf einer seiner Grenzen liegt. + * Gibt {@code true} zurück, wenn der Wert innerhalb des definierten Intervalls + * oder auf einer seiner Grenzen liegt. */ + @Override public boolean match(final T value) { - return value != null && min.compareTo(value) <= 0 - && max.compareTo(value) >= 0; + return value != null && min.compareTo(value) <= 0 && max.compareTo(value) >= 0; } } @@ -290,8 +282,7 @@ public boolean match(final T value) { * Gibt {@code true} zurück, wenn der übergebene Wert matcht und {@code * false}, wenn er nicht matcht. * - * @param value - * ein beliebiger Wert. + * @param value ein beliebiger Wert. * @return ob der Wert matcht. */ boolean match(T value); diff --git a/src/main/java/com/bitctrl/util/ValueSetMatcher.java b/src/main/java/com/bitctrl/util/ValueSetMatcher.java index b9b8cf5..17a5936 100644 --- a/src/main/java/com/bitctrl/util/ValueSetMatcher.java +++ b/src/main/java/com/bitctrl/util/ValueSetMatcher.java @@ -35,29 +35,28 @@ * * @author BitCtrl Systems GmbH, Falko Schumann * - * @param - * der Typ der zu prüfenden Werte. + * @param der Typ der zu prüfenden Werte. */ public class ValueSetMatcher implements ValueMatcher { - private final List> matchers = new ArrayList>(); + private final List> matchers = new ArrayList<>(); /** * Fügt einen Matcher der Matcher-Menge hinzu. * - * @param matcher - * ein beliebiger Matcher. + * @param matcher ein beliebiger Matcher. */ public void add(final ValueMatcher matcher) { matchers.add(matcher); } /** - * Gibt {@code true} zurück, wenn irgendein Matcher der Matcher-Menge matcht - * und {@code false}, wenn kein Matcher matcht. + * Gibt {@code true} zurück, wenn irgendein Matcher der Matcher-Menge matcht und + * {@code false}, wenn kein Matcher matcht. * * {@inheritDoc} */ + @Override public boolean match(final T value) { for (final ValueMatcher vm : matchers) { if (vm.match(value)) { diff --git a/src/main/java/com/bitctrl/util/jar/JarTools.java b/src/main/java/com/bitctrl/util/jar/JarTools.java index 3dd6729..b39961a 100644 --- a/src/main/java/com/bitctrl/util/jar/JarTools.java +++ b/src/main/java/com/bitctrl/util/jar/JarTools.java @@ -29,7 +29,6 @@ import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URL; @@ -55,8 +54,8 @@ private static final class JarAnalyzer { private final File out; /** - * Erzeugt einen {@code JarAnalyzer} der alle Jar-Files rekursiv - * analysiert und das Ergebnis in ein File {@code jar.txt} schreibt. + * Erzeugt einen {@code JarAnalyzer} der alle Jar-Files rekursiv analysiert und + * das Ergebnis in ein File {@code jar.txt} schreibt. * * @throws IOException */ @@ -66,11 +65,10 @@ public JarAnalyzer() throws IOException { } /** - * Erzeugt einen {@code JarAnalyzer} der ein bestimmtes Jar-File - * analisiert und das Ergebnis auf der Konsole ausgibt. + * Erzeugt einen {@code JarAnalyzer} der ein bestimmtes Jar-File analisiert und + * das Ergebnis auf der Konsole ausgibt. * - * @param file - * der Pfad zu einem Jar-File. + * @param file der Pfad zu einem Jar-File. * @throws IOException */ public JarAnalyzer(final String file) throws IOException { @@ -96,8 +94,8 @@ public JarAnalyzer(final String file) throws IOException { } /** - * Durchsucht eine Verzeichnisstruktur rekursiv nach Jar-Files und - * übergibt deren Informationen an {@link #printInfo(JarFile)}. + * Durchsucht eine Verzeichnisstruktur rekursiv nach Jar-Files und übergibt + * deren Informationen an {@link #printInfo(JarFile)}. * * @param parentFile * @throws IOException @@ -107,11 +105,11 @@ public void findJarsAndPrintInfo(final File parentFile) throws IOException { files = parentFile.listFiles(); if (files != null) { - for (int i = 0; i < files.length; i++) { - if (files[i].getName().endsWith(".jar")) { - printInfo(new JarFile(files[i])); - } else if (files[i].isDirectory()) { - findJarsAndPrintInfo(files[i]); + for (final File file : files) { + if (file.getName().endsWith(".jar")) { + printInfo(new JarFile(file)); + } else if (file.isDirectory()) { + findJarsAndPrintInfo(file); } } } @@ -120,8 +118,7 @@ public void findJarsAndPrintInfo(final File parentFile) throws IOException { /** * Schreibt die Informationen zu einem Jar-File in einen Dateistrom. * - * @param jar - * ein Jar-File. + * @param jar ein Jar-File. * @throws IOException */ public void printInfo(final JarFile jar) throws IOException { @@ -129,7 +126,8 @@ public void printInfo(final JarFile jar) throws IOException { final Attributes attributes; final Iterator iterator; - try (BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(out, true), Charset.defaultCharset().name()))) { + try (BufferedWriter buf = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(out, true), Charset.defaultCharset().name()))) { manifest = jar.getManifest(); attributes = manifest.getMainAttributes(); iterator = attributes.keySet().iterator(); @@ -154,14 +152,13 @@ public void printInfo(final JarFile jar) throws IOException { /** * Kleines Hilfsprogramm, um die Eigenschaften eines JAR-Files aus dem - * Manifest-File zu lesen. Wird ein Startparameter übergeben, wird dieser - * als Pfad zu einem JAR-File interpretiert und dessen Eigenschaften auf der - * Konsole ausgegeben. Wird kein Startparameter angegeben, wird rekursiv vom + * Manifest-File zu lesen. Wird ein Startparameter übergeben, wird dieser als + * Pfad zu einem JAR-File interpretiert und dessen Eigenschaften auf der Konsole + * ausgegeben. Wird kein Startparameter angegeben, wird rekursiv vom * Startverzeichnis nach JAR-Files gesucht und dessen Eigenschaften auf der * Konsole und in ein File jar.txt ausgegeben. * - * @param args - * nichts oder der Pfad zu einem JAR-File. + * @param args nichts oder der Pfad zu einem JAR-File. */ public static void main(final String[] args) { try { @@ -180,12 +177,11 @@ public static void main(final String[] args) { * Versionsdaten werden aus dem Manifest-File des Jar-Files in dem sich die * Klasse befindet ausgelesen. *

- * Befindet sich die Klasse nicht in einem Jar-File, enthält das Jar-File - * kein Manifest-File oder fehlen die entsprechenden Einträge im Manifest, - * dann erfolgt keinerlei Ausgabe. + * Befindet sich die Klasse nicht in einem Jar-File, enthält das Jar-File kein + * Manifest-File oder fehlen die entsprechenden Einträge im Manifest, dann + * erfolgt keinerlei Ausgabe. * - * @param clazz - * die Klasse die zum Finden des Manifest-Files verwendet wird. + * @param clazz die Klasse die zum Finden des Manifest-Files verwendet wird. */ public static void printVersionInfo(final Class clazz) { try { @@ -213,16 +209,14 @@ public static void printVersionInfo(final Class clazz) { /** * Gibt Daten zur aktuellen Version einer Klasse zurück. Die Versionsdaten - * werden aus dem Manifest-File des Jar-Files in dem sich die Klasse - * befindet ausgelesen. + * werden aus dem Manifest-File des Jar-Files in dem sich die Klasse befindet + * ausgelesen. * - * @param clazz - * die Klasse die zum Finden des Manifest-Files verwendet wird. + * @param clazz die Klasse die zum Finden des Manifest-Files verwendet wird. * @return die Versionsinformation. - * @throws IllegalArgumentException - * wenn die Klasse sich nicht in einem Jar-File befindet oder - * das Jar-File bzw. das Manifest-File nicht gelesen werden - * können. + * @throws IllegalArgumentException wenn die Klasse sich nicht in einem Jar-File + * befindet oder das Jar-File bzw. das + * Manifest-File nicht gelesen werden können. */ public static VersionInfo getVersionInfo(final Class clazz) { try { diff --git a/src/main/java/com/bitctrl/util/jar/JarVersionInfo.java b/src/main/java/com/bitctrl/util/jar/JarVersionInfo.java index 6214286..50ac410 100644 --- a/src/main/java/com/bitctrl/util/jar/JarVersionInfo.java +++ b/src/main/java/com/bitctrl/util/jar/JarVersionInfo.java @@ -58,20 +58,18 @@ private JarVersionInfo() { /** * Startet das Tool. * - * @param args - * eine Liste von Jar-Files. + * @param args eine Liste von Jar-Files. */ public static void main(final String[] args) { final boolean onlyVersion; final List files; if (args.length == 0) { - System.out - .println("Usage:\n\tJarVersionInfo [-short] jarfile1 jarfile2 ..."); + System.out.println("Usage:\n\tJarVersionInfo [-short] jarfile1 jarfile2 ..."); } - files = new LinkedList(Arrays.asList(args)); - if (args[0].equals("-short")) { + files = new LinkedList<>(Arrays.asList(args)); + if ("-short".equals(args[0])) { onlyVersion = true; files.remove(0); } else { @@ -90,23 +88,18 @@ public static void main(final String[] args) { attributes = manifest.getMainAttributes(); jar = new File(file).getName(); - title = attributes - .getValue(Attributes.Name.IMPLEMENTATION_TITLE); - version = attributes - .getValue(Attributes.Name.IMPLEMENTATION_VERSION); - vendor = attributes - .getValue(Attributes.Name.IMPLEMENTATION_VENDOR); + title = attributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE); + version = attributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION); + vendor = attributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR); url = attributes.getValue(Attributes.Name.IMPLEMENTATION_URL); if (onlyVersion) { System.out.println(jar + "," + version + "," + url); } else { - System.out.println(jar + "," + title + "," + version + "," - + vendor + "," + url); + System.out.println(jar + "," + title + "," + version + "," + vendor + "," + url); } } catch (final IOException ex) { - System.err - .println("Fehler beim Lesen eines Jar-Files: " + file); + System.err.println("Fehler beim Lesen eines Jar-Files: " + file); ex.printStackTrace(); } } diff --git a/src/main/java/com/bitctrl/util/jar/package-info.java b/src/main/java/com/bitctrl/util/jar/package-info.java index d767586..8cb4468 100644 --- a/src/main/java/com/bitctrl/util/jar/package-info.java +++ b/src/main/java/com/bitctrl/util/jar/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.util.jar; - diff --git a/src/main/java/com/bitctrl/util/logging/LoggerTools.java b/src/main/java/com/bitctrl/util/logging/LoggerTools.java index 284719d..3af12d0 100644 --- a/src/main/java/com/bitctrl/util/logging/LoggerTools.java +++ b/src/main/java/com/bitctrl/util/logging/LoggerTools.java @@ -47,19 +47,16 @@ public final class LoggerTools { /** Der Name der Property, die das Logverzeichnis enthält. */ - public static final String CONFIG_LOG_DIR = String - .valueOf("common.log.dir"); + public static final String CONFIG_LOG_DIR = String.valueOf("common.log.dir"); /** Der Name der Property, die den Loglevel enthält. */ - public static final String CONFIG_LOG_LEVEL = String - .valueOf("common.log.level"); + public static final String CONFIG_LOG_LEVEL = String.valueOf("common.log.level"); /** * Ein Datum/Uhrzeit Formatierer für Logfiles, dieser schreibt auch die * Millisekunden. Übernommen aus UZSHLIB/BcFunc. */ - private static final SimpleDateFormat logFileDateFormatter = new SimpleDateFormat( - "dd.MM.yyyy HH:mm:ss.SSS"); + private static final SimpleDateFormat logFileDateFormatter = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.SSS"); private static final int MAX_FILE_SIZE = 1024 * 1024; // 1 MB private static final int MAX_FILE_COUNT = 10; @@ -68,25 +65,23 @@ public final class LoggerTools { * Setzt rekursiv alle Meldungen einer Exception-Kette ( * {@link Throwable#getCause()}) zusammen. * - * @param t - * eine Exception. - * @return die Kette aller Meldungen in der Form - * "[Meldung] > [Meldung].cause > [Meldung].cause.cause". + * @param t eine Exception. + * @return die Kette aller Meldungen in der Form "[Meldung] > [Meldung].cause + * > [Meldung].cause.cause". */ public static String getMessages(final Throwable t) { - String msg = t.getLocalizedMessage(); + final StringBuilder msg = new StringBuilder().append(t.getLocalizedMessage()); if (t.getCause() != null && t.getCause() != t) { - msg += " > " + getMessages(t.getCause()); + msg.append(" > ").append(getMessages(t.getCause())); } - return msg; + return msg.toString(); } /** * Gibt den Stack Trace einer Exception als String zurück. Mit {@code new * Exception()} kann der aktuelle Stack Trace erfragt werden. * - * @param e - * eine Exception oder ein Error. + * @param e eine Exception oder ein Error. * @return der Stack Trace. */ public static String getStackTrace(final Throwable e) { @@ -100,8 +95,7 @@ public static String getStackTrace(final Throwable e) { * Bestimmt die Position im Code einer Exception. Angegeben wird der * Klassenname, der Methodenname und die Zeilennummer. * - * @param e - * eine Exception oder ein Error. + * @param e eine Exception oder ein Error. * @return die Aufrufposition der Betriebsmeldung */ public static String getCallPosition(final Throwable e) { @@ -109,10 +103,8 @@ public static String getCallPosition(final Throwable e) { if (e.getStackTrace().length > 1) { final StackTraceElement traceElement = e.getStackTrace()[1]; - s = traceElement.getClassName() + "." - + traceElement.getMethodName() + "(" - + traceElement.getFileName() + ": " - + traceElement.getLineNumber() + ")"; + s = traceElement.getClassName() + "." + traceElement.getMethodName() + "(" + traceElement.getFileName() + + ": " + traceElement.getLineNumber() + ")"; } else { s = "Aufrufposition nicht ermittelbar!"; } @@ -120,17 +112,14 @@ public static String getCallPosition(final Throwable e) { } /** - * Liegt das verzeichnis fest, in dem Log-Files abgelegt werden soll. - * Existiert das Verzeichnis nicht, wird es angelegt. + * Liegt das verzeichnis fest, in dem Log-Files abgelegt werden soll. Existiert + * das Verzeichnis nicht, wird es angelegt. * - * @param dir - * ein Verzeichnis. - * @param applicationName - * der Name der Appliktion. + * @param dir ein Verzeichnis. + * @param applicationName der Name der Appliktion. * @return {@code true}, wenn die Operation erfolgreich war. */ - public static boolean setLogDirectory(final String dir, - final String applicationName) { + public static boolean setLogDirectory(final String dir, final String applicationName) { FileHandler handler; String path; @@ -153,9 +142,7 @@ public static boolean setLogDirectory(final String dir, handler.setFormatter(new SimpleFormatter()); Logger.getLogger("").addHandler(handler); return true; - } catch (final SecurityException ex) { - return false; - } catch (final IOException ex) { + } catch (final SecurityException | IOException ex) { return false; } } @@ -163,15 +150,14 @@ public static boolean setLogDirectory(final String dir, /** * Legt den Log-Level des Root-Loggers und dessen Handler fest. * - * @param level - * der neue Log-Level. + * @param level der neue Log-Level. */ public static void setLoggerLevel(final Level level) { Handler[] handler; Logger.getLogger("").setLevel(level); handler = Logger.getLogger("").getHandlers(); - for (int i = 0; i < handler.length; i++) { + for (final Handler element : handler) { handler[0].setLevel(level); } } @@ -179,31 +165,25 @@ public static void setLoggerLevel(final Level level) { /** * Prüft ob der Logger Ausgaben auf einem bestimmten Level macht. * - * @param logger - * ein Logger. - * @param level - * der zu prüfende Level. - * @return true, wenn der Logger Ausgaben auf dem angegebenen - * Level macht. + * @param logger ein Logger. + * @param level der zu prüfende Level. + * @return true, wenn der Logger Ausgaben auf dem angegebenen Level + * macht. */ public static boolean isLogable(final Logger logger, final Level level) { return isLogable(logger, level, null); } /** - * Prüft ob der Logger Ausgaben auf einem bestimmten Level, mit einem - * bestimmten Handler macht. Ist der Handler null, wird nur der - * Level geprüft. + * Prüft ob der Logger Ausgaben auf einem bestimmten Level, mit einem bestimmten + * Handler macht. Ist der Handler null, wird nur der Level geprüft. * - * @param logger - * ein Logger. - * @param level - * der zu prüfende Level. - * @param handlerClazz - * der zu prüfende Handler oder null. - * @return true, wenn der Logger Ausgaben auf dem angegebenen - * Level mit dem angegebenen Handler macht. Wenn der Handler - * null ist, wird er ignoriert. + * @param logger ein Logger. + * @param level der zu prüfende Level. + * @param handlerClazz der zu prüfende Handler oder null. + * @return true, wenn der Logger Ausgaben auf dem angegebenen Level + * mit dem angegebenen Handler macht. Wenn der Handler null + * ist, wird er ignoriert. */ public static boolean isLogable(final Logger logger, final Level level, final Class handlerClazz) { @@ -229,12 +209,12 @@ public static boolean isLogable(final Logger logger, final Level level, } /** - * Liefert einen Datum/Uhrzeit Formatierer für Logfiles, dieser schreibt - * auch die Millisekunden. Übernommen aus UZSHLIB/BcFunc. + * Liefert einen Datum/Uhrzeit Formatierer für Logfiles, dieser schreibt auch + * die Millisekunden. Übernommen aus UZSHLIB/BcFunc. * * @return logFileDateFormatter der Formatter */ - public static final SimpleDateFormat getLogFileDateFormatter() { + public static SimpleDateFormat getLogFileDateFormatter() { return logFileDateFormatter; } diff --git a/src/main/java/com/bitctrl/util/logging/package-info.java b/src/main/java/com/bitctrl/util/logging/package-info.java index 88eded1..634b88f 100644 --- a/src/main/java/com/bitctrl/util/logging/package-info.java +++ b/src/main/java/com/bitctrl/util/logging/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.util.logging; - diff --git a/src/main/java/com/bitctrl/util/monitor/AbstractMonitor.java b/src/main/java/com/bitctrl/util/monitor/AbstractMonitor.java index 083a177..ac7bd18 100644 --- a/src/main/java/com/bitctrl/util/monitor/AbstractMonitor.java +++ b/src/main/java/com/bitctrl/util/monitor/AbstractMonitor.java @@ -7,16 +7,16 @@ public abstract class AbstractMonitor implements IMonitor { private Set listeners = null; - public synchronized final void addMonitorListener( - final IMonitorProgressListener listener) { + @Override + public synchronized final void addMonitorListener(final IMonitorProgressListener listener) { if (null == listeners) { - listeners = new HashSet(); + listeners = new HashSet<>(); } listeners.add(listener); } - public synchronized final void removeMonitorListener( - final IMonitorProgressListener listener) { + @Override + public synchronized final void removeMonitorListener(final IMonitorProgressListener listener) { if (null != listener) { listeners.remove(listener); if (listeners.isEmpty()) { @@ -25,8 +25,7 @@ public synchronized final void removeMonitorListener( } } - protected synchronized final void notifyMonitorListeners( - final double progress) { + protected synchronized final void notifyMonitorListeners(final double progress) { if (null != listeners) { for (final IMonitorProgressListener listener : listeners) { listener.progress(progress); diff --git a/src/main/java/com/bitctrl/util/monitor/IMonitor.java b/src/main/java/com/bitctrl/util/monitor/IMonitor.java index 13a8f91..1063c94 100644 --- a/src/main/java/com/bitctrl/util/monitor/IMonitor.java +++ b/src/main/java/com/bitctrl/util/monitor/IMonitor.java @@ -4,82 +4,75 @@ public interface IMonitor { /** * Constant indicating an unknown amount of work. */ - public final static int UNKNOWN = -1; + int UNKNOWN = -1; /** - * Notifies that the main task is beginning. This must only be called once - * on a given progress monitor instance. + * Notifies that the main task is beginning. This must only be called once on a + * given progress monitor instance. * - * @param name - * the name (or description) of the main task - * @param totalWork - * the total number of work units into which the main task is - * been subdivided. If the value is UNKNOWN the - * implementation is free to indicate progress in a way which - * doesn't require the total number of work units in advance. + * @param name the name (or description) of the main task + * @param totalWork the total number of work units into which the main task is + * been subdivided. If the value is UNKNOWN the + * implementation is free to indicate progress in a way which + * doesn't require the total number of work units in advance. */ - public void beginTask(String name, int totalWork); + void beginTask(String name, int totalWork); /** - * Notifies that the work is done; that is, either the main task is - * completed or the user canceled it. This method may be called more than - * once (implementations should be prepared to handle this case). + * Notifies that the work is done; that is, either the main task is completed or + * the user canceled it. This method may be called more than once + * (implementations should be prepared to handle this case). */ - public void done(); + void done(); /** * Returns whether cancelation of current operation has been requested. - * Long-running operations should poll to see if cancelation has been - * requested. + * Long-running operations should poll to see if cancelation has been requested. * * @return true if cancellation has been requested, and * false otherwise * @see #setCanceled(boolean) */ - public boolean isCanceled(); + boolean isCanceled(); /** * Sets the cancel state to the given value. * - * @param canceled - * true indicates that cancelation has been - * requested (but not necessarily acknowledged); - * false clears this flag + * @param canceled true indicates that cancelation has been + * requested (but not necessarily acknowledged); + * false clears this flag * @see #isCanceled() */ - public void setCanceled(boolean canceled); + void setCanceled(boolean canceled); /** * Sets the task name to the given value. This method is used to restore the - * task label after a nested operation was executed. Normally there is no - * need for clients to call this method. + * task label after a nested operation was executed. Normally there is no need + * for clients to call this method. * - * @param name - * the name (or description) of the main task + * @param name the name (or description) of the main task * @see #beginTask(java.lang.String, int) */ - public void setTaskName(String name); + void setTaskName(String name); /** - * Notifies that a subtask of the main task is beginning. Subtasks are - * optional; the main task might not have subtasks. + * Notifies that a subtask of the main task is beginning. Subtasks are optional; + * the main task might not have subtasks. * - * @param name - * the name (or description) of the subtask + * @param name the name (or description) of the subtask */ - public void subTask(String name); + void subTask(String name); /** * Notifies that a given number of work unit of the main task has been - * completed. Note that this amount represents an installment, as opposed to - * a cumulative amount of work done to date. + * completed. Note that this amount represents an installment, as opposed to a + * cumulative amount of work done to date. * - * @param work - * a non-negative number of work units just completed + * @param work a non-negative number of work units just completed */ - public void worked(int work); + void worked(int work); - public void addMonitorListener(IMonitorProgressListener listener); + void addMonitorListener(IMonitorProgressListener listener); - public void removeMonitorListener(IMonitorProgressListener listener); + void removeMonitorListener(IMonitorProgressListener listener); } \ No newline at end of file diff --git a/src/main/java/com/bitctrl/util/monitor/IMonitorProgressListener.java b/src/main/java/com/bitctrl/util/monitor/IMonitorProgressListener.java index 0ec4161..5e89e4a 100644 --- a/src/main/java/com/bitctrl/util/monitor/IMonitorProgressListener.java +++ b/src/main/java/com/bitctrl/util/monitor/IMonitorProgressListener.java @@ -1,5 +1,5 @@ package com.bitctrl.util.monitor; public interface IMonitorProgressListener { - public void progress(double progress); + void progress(double progress); } diff --git a/src/main/java/com/bitctrl/util/monitor/NullMonitor.java b/src/main/java/com/bitctrl/util/monitor/NullMonitor.java index f847498..9fe665b 100644 --- a/src/main/java/com/bitctrl/util/monitor/NullMonitor.java +++ b/src/main/java/com/bitctrl/util/monitor/NullMonitor.java @@ -8,30 +8,37 @@ public class NullMonitor extends AbstractMonitor { private boolean canceled; + @Override public void beginTask(final String name, final int totalWork) { // stub } + @Override public void done() { // stub } + @Override public boolean isCanceled() { return canceled; } + @Override public void setCanceled(final boolean canceled) { this.canceled = canceled; } + @Override public void setTaskName(final String name) { // stub } + @Override public void subTask(final String name) { // stub } + @Override public void worked(final int work) { // stub } diff --git a/src/main/java/com/bitctrl/util/monitor/SubMonitor.java b/src/main/java/com/bitctrl/util/monitor/SubMonitor.java index 0c51417..1d0bdbc 100644 --- a/src/main/java/com/bitctrl/util/monitor/SubMonitor.java +++ b/src/main/java/com/bitctrl/util/monitor/SubMonitor.java @@ -274,37 +274,35 @@ public final class SubMonitor extends AbstractMonitor { /** * Minimum number of ticks to allocate when calling beginTask on an unknown - * IProgressMonitor. Pick a number that is big enough such that, no matter - * where progress is being displayed, the user would be unlikely to notice - * if progress were to be reported with higher accuracy. + * IProgressMonitor. Pick a number that is big enough such that, no matter where + * progress is being displayed, the user would be unlikely to notice if progress + * were to be reported with higher accuracy. */ private static final int MINIMUM_RESOLUTION = 1000; /** - * The RootInfo holds information about the root progress monitor. A - * SubMonitor and its active descendents share the same RootInfo. + * The RootInfo holds information about the root progress monitor. A SubMonitor + * and its active descendents share the same RootInfo. */ private static final class RootInfo { private final IMonitor root; /** - * Remembers the last task name. Prevents us from setting the same task - * name multiple times in a row. + * Remembers the last task name. Prevents us from setting the same task name + * multiple times in a row. */ private String taskName = null; /** - * Remembers the last subtask name. Prevents the SubMonitor from setting - * the same subtask string more than once in a row. + * Remembers the last subtask name. Prevents the SubMonitor from setting the + * same subtask string more than once in a row. */ private String subTask = null; /** - * Creates a RootInfo struct that delegates to the given progress - * monitor. + * Creates a RootInfo struct that delegates to the given progress monitor. * - * @param root - * progress monitor to delegate to + * @param root progress monitor to delegate to */ public RootInfo(final IMonitor root) { this.root = root; @@ -341,14 +339,13 @@ public void worked(final int i) { } /** - * Total number of ticks that this progress monitor is permitted to consume - * from the root. + * Total number of ticks that this progress monitor is permitted to consume from + * the root. */ private int totalParent; /** - * Number of ticks that this progress monitor has already reported in the - * root. + * Number of ticks that this progress monitor has already reported in the root. */ private int usedForParent = 0; @@ -364,9 +361,9 @@ public void worked(final int i) { private int totalForChildren; /** - * Children created by newChild will be completed automatically the next - * time the parent progress monitor is touched. This points to the last - * incomplete child created with newChild. + * Children created by newChild will be completed automatically the next time + * the parent progress monitor is touched. This points to the last incomplete + * child created with newChild. */ private IMonitor lastSubMonitor = null; @@ -381,26 +378,25 @@ public void worked(final int i) { private final int flags; /** - * May be passed as a flag to newChild. Indicates that the calls to subTask - * on the child should be ignored. Without this flag, calling subTask on the - * child will result in a call to subTask on its parent. + * May be passed as a flag to newChild. Indicates that the calls to subTask on + * the child should be ignored. Without this flag, calling subTask on the child + * will result in a call to subTask on its parent. */ public static final int SUPPRESS_SUBTASK = 0x0001; /** * May be passed as a flag to newChild. Indicates that strings passed into * beginTask should be ignored. If this flag is specified, then the progress - * monitor instance will accept null as the first argument to beginTask. - * Without this flag, any string passed to beginTask will result in a call - * to setTaskName on the parent. + * monitor instance will accept null as the first argument to beginTask. Without + * this flag, any string passed to beginTask will result in a call to + * setTaskName on the parent. */ public static final int SUPPRESS_BEGINTASK = 0x0002; /** * May be passed as a flag to newChild. Indicates that strings passed into * setTaskName should be ignored. If this string is omitted, then a call to - * setTaskName on the child will result in a call to setTaskName on the - * parent. + * setTaskName on the child will result in a call to setTaskName on the parent. */ public static final int SUPPRESS_SETTASKNAME = 0x0004; @@ -412,8 +408,7 @@ public void worked(final int i) { /** * May be passed as a flag to newChild. Indicates that strings passed to - * setTaskName, subTask, and beginTask should all be propagated to the - * parent. + * setTaskName, subTask, and beginTask should all be propagated to the parent. */ public static final int SUPPRESS_NONE = 0; @@ -421,14 +416,12 @@ public void worked(final int i) { * Creates a new SubMonitor that will report its progress via the given * RootInfo. * - * @param rootInfo - * the root of this progress monitor tree - * @param totalWork - * total work to perform on the given progress monitor - * @param availableToChildren - * number of ticks allocated for this instance's children - * @param flags - * a bitwise combination of the SUPPRESS_* constants + * @param rootInfo the root of this progress monitor tree + * @param totalWork total work to perform on the given progress + * monitor + * @param availableToChildren number of ticks allocated for this instance's + * children + * @param flags a bitwise combination of the SUPPRESS_* constants */ private SubMonitor(final RootInfo rootInfo, final int totalWork, final int availableToChildren, final int flags) { root = rootInfo; @@ -439,21 +432,19 @@ private SubMonitor(final RootInfo rootInfo, final int totalWork, final int avail /** *

- * Converts an unknown (possibly null) IProgressMonitor into a SubMonitor. - * It is not necessary to call done() on the result, but the caller is - * responsible for calling done() on the argument. Calls beginTask on the - * argument. + * Converts an unknown (possibly null) IProgressMonitor into a SubMonitor. It is + * not necessary to call done() on the result, but the caller is responsible for + * calling done() on the argument. Calls beginTask on the argument. *

* *

* This method should generally be called at the beginning of a method that - * accepts an IProgressMonitor in order to convert the IProgressMonitor into - * a SubMonitor. + * accepts an IProgressMonitor in order to convert the IProgressMonitor into a + * SubMonitor. *

* - * @param monitor - * monitor to convert to a SubMonitor instance or null. Treats - * null as a new instance of NullProgressMonitor. + * @param monitor monitor to convert to a SubMonitor instance or null. Treats + * null as a new instance of NullProgressMonitor. * @return a SubMonitor instance that adapts the argument */ public static SubMonitor convert(final IMonitor monitor) { @@ -463,23 +454,21 @@ public static SubMonitor convert(final IMonitor monitor) { /** *

* Converts an unknown (possibly null) IProgressMonitor into a SubMonitor - * allocated with the given number of ticks. It is not necessary to call - * done() on the result, but the caller is responsible for calling done() on - * the argument. Calls beginTask on the argument. + * allocated with the given number of ticks. It is not necessary to call done() + * on the result, but the caller is responsible for calling done() on the + * argument. Calls beginTask on the argument. *

* *

* This method should generally be called at the beginning of a method that - * accepts an IProgressMonitor in order to convert the IProgressMonitor into - * a SubMonitor. + * accepts an IProgressMonitor in order to convert the IProgressMonitor into a + * SubMonitor. *

* - * @param monitor - * monitor to convert to a SubMonitor instance or null. Treats - * null as a new instance of NullProgressMonitor. - * @param work - * number of ticks that will be available in the resulting - * monitor + * @param monitor monitor to convert to a SubMonitor instance or null. Treats + * null as a new instance of NullProgressMonitor. + * @param work number of ticks that will be available in the resulting + * monitor * @return a SubMonitor instance that adapts the argument */ public static SubMonitor convert(final IMonitor monitor, final int work) { @@ -489,26 +478,23 @@ public static SubMonitor convert(final IMonitor monitor, final int work) { /** *

* Converts an unknown (possibly null) IProgressMonitor into a SubMonitor - * allocated with the given number of ticks. It is not necessary to call - * done() on the result, but the caller is responsible for calling done() on - * the argument. Calls beginTask on the argument. + * allocated with the given number of ticks. It is not necessary to call done() + * on the result, but the caller is responsible for calling done() on the + * argument. Calls beginTask on the argument. *

* *

* This method should generally be called at the beginning of a method that - * accepts an IProgressMonitor in order to convert the IProgressMonitor into - * a SubMonitor. + * accepts an IProgressMonitor in order to convert the IProgressMonitor into a + * SubMonitor. *

* - * @param monitor - * to convert into a SubMonitor instance or null. If given a null - * argument, the resulting SubMonitor will not report its - * progress anywhere. - * @param taskName - * user readable name to pass to monitor.beginTask. Never null. - * @param work - * initial number of ticks to allocate for children of the - * SubMonitor + * @param monitor to convert into a SubMonitor instance or null. If given a + * null argument, the resulting SubMonitor will not report its + * progress anywhere. + * @param taskName user readable name to pass to monitor.beginTask. Never null. + * @param work initial number of ticks to allocate for children of the + * SubMonitor * @return a new SubMonitor instance that is a child of the given monitor */ public static SubMonitor convert(IMonitor monitor, final String taskName, final int work) { @@ -530,20 +516,19 @@ public static SubMonitor convert(IMonitor monitor, final String taskName, final /** *

* Sets the work remaining for this SubMonitor instance. This is the total - * number of ticks that may be reported by all subsequent calls to - * worked(int), newChild(int), etc. This may be called many times for the - * same SubMonitor instance. When this method is called, the remaining space - * on the progress monitor is redistributed into the given number of ticks. + * number of ticks that may be reported by all subsequent calls to worked(int), + * newChild(int), etc. This may be called many times for the same SubMonitor + * instance. When this method is called, the remaining space on the progress + * monitor is redistributed into the given number of ticks. *

* *

* It doesn't matter how much progress has already been reported with this - * SubMonitor instance. If you call setWorkRemaining(100), you will be able - * to report 100 more ticks of work before the progress meter reaches 100%. + * SubMonitor instance. If you call setWorkRemaining(100), you will be able to + * report 100 more ticks of work before the progress meter reaches 100%. *

* - * @param workRemaining - * total number of remaining ticks + * @param workRemaining total number of remaining ticks * @return the receiver */ public SubMonitor setWorkRemaining(int workRemaining) { @@ -570,8 +555,7 @@ public SubMonitor setWorkRemaining(int workRemaining) { * Consumes the given number of child ticks, given as a double. Must only be * called if the monitor is in floating-point mode. * - * @param ticks - * the number of ticks to consume + * @param ticks the number of ticks to consume * @return ticks the number of ticks to be consumed from parent */ private int consume(final double ticks) { @@ -602,6 +586,7 @@ private int consume(final double ticks) { * * @see org.eclipse.core.runtime.IProgressMonitor#isCanceled() */ + @Override public boolean isCanceled() { return root.isCanceled(); } @@ -609,9 +594,9 @@ public boolean isCanceled() { /* * (non-Javadoc) * - * @see - * org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String) + * @see org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String) */ + @Override public void setTaskName(final String name) { if ((flags & SUPPRESS_SETTASKNAME) == 0) { root.setTaskName(name); @@ -624,15 +609,14 @@ public void setTaskName(final String name) { * *

* This method is equivalent calling setWorkRemaining(...) on the receiver. - * Unless the SUPPRESS_BEGINTASK flag is set, this will also be equivalent - * to calling setTaskName(...) on the parent. + * Unless the SUPPRESS_BEGINTASK flag is set, this will also be equivalent to + * calling setTaskName(...) on the parent. *

* - * @param name - * new main task name - * @param totalWork - * number of ticks to allocate + * @param name new main task name + * @param totalWork number of ticks to allocate */ + @Override public void beginTask(final String name, final int totalWork) { if ((flags & SUPPRESS_BEGINTASK) == 0 && name != null) { root.setTaskName(name); @@ -645,6 +629,7 @@ public void beginTask(final String name, final int totalWork) { * * @see org.eclipse.core.runtime.IProgressMonitor#done() */ + @Override public void done() { cleanupActiveChild(); final int delta = totalParent - usedForParent; @@ -677,6 +662,7 @@ private void internalWorked(final double work) { * * @see org.eclipse.core.runtime.IProgressMonitor#subTask(java.lang.String) */ + @Override public void subTask(final String name) { if ((flags & SUPPRESS_SUBTASK) == 0) { root.subTask(name); @@ -688,6 +674,7 @@ public void subTask(final String name) { * * @see org.eclipse.core.runtime.IProgressMonitor#worked(int) */ + @Override public void worked(final int work) { internalWorked(work); } @@ -697,30 +684,30 @@ public void worked(final int work) { * * @see org.eclipse.core.runtime.IProgressMonitor#setCanceled(boolean) */ + @Override public void setCanceled(final boolean b) { root.setCanceled(b); } /** *

- * Creates a sub progress monitor that will consume the given number of - * ticks from the receiver. It is not necessary to call - * beginTask or done on the result. However, the - * resulting progress monitor will not report any work after the first call - * to done() or before ticks are allocated. Ticks may be allocated by - * calling beginTask or setWorkRemaining. + * Creates a sub progress monitor that will consume the given number of ticks + * from the receiver. It is not necessary to call beginTask or + * done on the result. However, the resulting progress monitor will + * not report any work after the first call to done() or before ticks are + * allocated. Ticks may be allocated by calling beginTask or setWorkRemaining. *

* *

- * Each SubMonitor only has one active child at a time. Each time newChild() - * is called, the result becomes the new active child and any unused - * progress from the previously-active child is consumed. + * Each SubMonitor only has one active child at a time. Each time newChild() is + * called, the result becomes the new active child and any unused progress from + * the previously-active child is consumed. *

* *

* This is property makes it unnecessary to call done() on a SubMonitor - * instance, since child monitors are automatically cleaned up the next time - * the parent is touched. + * instance, since child monitors are automatically cleaned up the next time the + * parent is touched. *

* *
@@ -768,8 +755,7 @@ public void setCanceled(final boolean b) {
 	 * 
 	 * 
* - * @param totalWork - * number of ticks to consume from the receiver + * @param totalWork number of ticks to consume from the receiver * @return new sub progress monitor that may be used in place of a new * SubMonitor */ @@ -779,24 +765,23 @@ public SubMonitor newChild(final int totalWork) { /** *

- * Creates a sub progress monitor that will consume the given number of - * ticks from the receiver. It is not necessary to call - * beginTask or done on the result. However, the - * resulting progress monitor will not report any work after the first call - * to done() or before ticks are allocated. Ticks may be allocated by - * calling beginTask or setWorkRemaining. + * Creates a sub progress monitor that will consume the given number of ticks + * from the receiver. It is not necessary to call beginTask or + * done on the result. However, the resulting progress monitor will + * not report any work after the first call to done() or before ticks are + * allocated. Ticks may be allocated by calling beginTask or setWorkRemaining. *

* *

- * Each SubMonitor only has one active child at a time. Each time newChild() - * is called, the result becomes the new active child and any unused - * progress from the previously-active child is consumed. + * Each SubMonitor only has one active child at a time. Each time newChild() is + * called, the result becomes the new active child and any unused progress from + * the previously-active child is consumed. *

* *

* This is property makes it unnecessary to call done() on a SubMonitor - * instance, since child monitors are automatically cleaned up the next time - * the parent is touched. + * instance, since child monitors are automatically cleaned up the next time the + * parent is touched. *

* *
@@ -844,10 +829,8 @@ public SubMonitor newChild(final int totalWork) {
 	 * 
 	 * 
* - * @param totalWork - * number of ticks to consume from the receiver - * @param suppressFlags - * Modus der Filterung + * @param totalWork number of ticks to consume from the receiver + * @param suppressFlags Modus der Filterung * @return new sub progress monitor that may be used in place of a new * SubMonitor */ diff --git a/src/main/java/com/bitctrl/util/package-info.java b/src/main/java/com/bitctrl/util/package-info.java index 630a2ed..9925925 100644 --- a/src/main/java/com/bitctrl/util/package-info.java +++ b/src/main/java/com/bitctrl/util/package-info.java @@ -30,4 +30,3 @@ * @author BitCtrl Systems GmbH, Falko Schumann */ package com.bitctrl.util; - diff --git a/src/main/java/com/bitctrl/util/resultset/IIndividualResult.java b/src/main/java/com/bitctrl/util/resultset/IIndividualResult.java index b43a92d..285fed9 100644 --- a/src/main/java/com/bitctrl/util/resultset/IIndividualResult.java +++ b/src/main/java/com/bitctrl/util/resultset/IIndividualResult.java @@ -30,10 +30,8 @@ * * @author BitCtrl Systems GmbH, Albrecht Uhlmann * - * @param - * der Typ des individuellen Ergebnis, z.B. Long - * @param - * der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow + * @param der Typ des individuellen Ergebnis, z.B. Long + * @param der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow */ public interface IIndividualResult { @@ -45,11 +43,11 @@ public interface IIndividualResult { T getCurrentValue(); /** - * Liefert den kompletten Datensatz, aus dem getCurrentValue() extrahiert - * wurde. Die Methode dient dazu, in Systemen, auf denen man sich nicht auf - * einen individuellen Datenpunkt anmelden kann, das zugrundeliegende - * Datenobjekt zu bekommen (z.B. eine Data oder ResultData im Datenverteiler - * oder eine SQL-Row bei einer Datenbank. + * Liefert den kompletten Datensatz, aus dem getCurrentValue() extrahiert wurde. + * Die Methode dient dazu, in Systemen, auf denen man sich nicht auf einen + * individuellen Datenpunkt anmelden kann, das zugrundeliegende Datenobjekt zu + * bekommen (z.B. eine Data oder ResultData im Datenverteiler oder eine SQL-Row + * bei einer Datenbank. * * @return der Basiswert. */ diff --git a/src/main/java/com/bitctrl/util/resultset/IRelatedResultSet.java b/src/main/java/com/bitctrl/util/resultset/IRelatedResultSet.java index 9391656..d06d312 100644 --- a/src/main/java/com/bitctrl/util/resultset/IRelatedResultSet.java +++ b/src/main/java/com/bitctrl/util/resultset/IRelatedResultSet.java @@ -30,20 +30,16 @@ * * @author BitCtrl Systems GmbH, Albrecht Uhlmann * - * @param - * der Datentyp der Ergebnisse - * @param - * der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow + * @param der Datentyp der Ergebnisse + * @param der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow */ public interface IRelatedResultSet { /** * Ein individuelles Element hat einen neuen Wert geliefert. * - * @param element - * das Element, welches den Wert zur Verfügung stellt. - * @param wert - * der Wert + * @param element das Element, welches den Wert zur Verfügung stellt. + * @param wert der Wert */ void neuerWert(IIndividualResult element, T wert); diff --git a/src/main/java/com/bitctrl/util/resultset/IRelatedResultSetContainer.java b/src/main/java/com/bitctrl/util/resultset/IRelatedResultSetContainer.java index 803c856..50ced59 100644 --- a/src/main/java/com/bitctrl/util/resultset/IRelatedResultSetContainer.java +++ b/src/main/java/com/bitctrl/util/resultset/IRelatedResultSetContainer.java @@ -34,16 +34,14 @@ public interface IRelatedResultSetContainer { /** - * Callback, wenn entweder alle Ergebnisse da sind oder der Timeout - * abgelaufen ist. + * Callback, wenn entweder alle Ergebnisse da sind oder der Timeout abgelaufen + * ist. * - * Innerhalb des Callbacks kann man noch die individuellen Ergebnisse der - * Werte feststellen, also welche Ergebnisse vor Ablauf des Timeouts kamen - * und welche fehlten. Nach der R�ckkehr wird die Ergebnismenge - * zur�ckgesetzt. + * Innerhalb des Callbacks kann man noch die individuellen Ergebnisse der Werte + * feststellen, also welche Ergebnisse vor Ablauf des Timeouts kamen und welche + * fehlten. Nach der R�ckkehr wird die Ergebnismenge zur�ckgesetzt. * - * @param timeout - * true - Timeout abgelaufen + * @param timeout true - Timeout abgelaufen */ void resultSetComplete(boolean timeout); } diff --git a/src/main/java/com/bitctrl/util/resultset/LinearBuffer.java b/src/main/java/com/bitctrl/util/resultset/LinearBuffer.java index 2d3e6b4..36b2e1e 100644 --- a/src/main/java/com/bitctrl/util/resultset/LinearBuffer.java +++ b/src/main/java/com/bitctrl/util/resultset/LinearBuffer.java @@ -34,8 +34,7 @@ * * @author BitCtrl Systems GmbH, Albrecht Uhlmann * - * @param - * der Typ der verwalteten Objekte + * @param der Typ der verwalteten Objekte */ public class LinearBuffer implements Collection { @@ -47,22 +46,20 @@ public class LinearBuffer implements Collection { /** * Legt ein Schieberegister mit bestimmter Größe an. * - * @param size - * die Größe in Anzahl Elementen. Muss größer 0 sein, sonst - * {@link IllegalArgumentException}. + * @param size die Größe in Anzahl Elementen. Muss größer 0 sein, sonst + * {@link IllegalArgumentException}. */ public LinearBuffer(final int size) { super(); if (size < 1) { - throw new IllegalArgumentException( - "Size must be at least 1 element."); + throw new IllegalArgumentException("Size must be at least 1 element."); } buffer = (T[]) new Object[size]; } /** - * Rotiert den Inhalt um eins nach rechts. Beispiel: Vor Aufruf: A - B - C - * Nach Aufruf: C - A - B + * Rotiert den Inhalt um eins nach rechts. Beispiel: Vor Aufruf: A - B - C Nach + * Aufruf: C - A - B */ public void rotateRight() { int loop; @@ -74,8 +71,8 @@ public void rotateRight() { } /** - * Schiebt den Inhalt um eins nach rechts. Beispiel: Vor Aufruf: A - B - C - * Nach Aufruf: null - A - B + * Schiebt den Inhalt um eins nach rechts. Beispiel: Vor Aufruf: A - B - C Nach + * Aufruf: null - A - B */ public void shiftRight() { rotateRight(); @@ -85,9 +82,9 @@ public void shiftRight() { /** * Fügt ein Element an Position 0 hinzu. * - * @param element - * das Element + * @param element das Element */ + @Override public boolean add(final T element) { rotateRight(); buffer[0] = element; @@ -99,6 +96,7 @@ public boolean add(final T element) { * * @return die Größe in Anzahl Elemente */ + @Override public int size() { return buffer.length; } @@ -158,7 +156,7 @@ public boolean isEmpty() { @Override public Iterator iterator() { - return new Iterator() { + return new Iterator<>() { private int pos = 0; diff --git a/src/main/java/com/bitctrl/util/resultset/RelatedResultSet.java b/src/main/java/com/bitctrl/util/resultset/RelatedResultSet.java index bcc17dd..4493de2 100644 --- a/src/main/java/com/bitctrl/util/resultset/RelatedResultSet.java +++ b/src/main/java/com/bitctrl/util/resultset/RelatedResultSet.java @@ -37,16 +37,14 @@ * * @author BitCtrl Systems GmbH, Albrecht Uhlmann * - * @param - * ein beliebier Datentyp, typischerweise Zahlen - * @param - * der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow + * @param ein beliebier Datentyp, typischerweise Zahlen + * @param der Typ des zugrunde liegenden Datensatzes, z.B. SQLRow */ public abstract class RelatedResultSet implements IRelatedResultSet { private static final Timer TIMER = new Timer(); - private final Map, Boolean> backend = new LinkedHashMap, Boolean>(); + private final Map, Boolean> backend = new LinkedHashMap<>(); private final IRelatedResultSetContainer container; @@ -57,10 +55,8 @@ public abstract class RelatedResultSet implements IRelatedResultSet /** * Konstruktor übernimmt nur die Member. * - * @param container - * der Container, zu dem diese Ergebnisemenge gehört. - * @param timeoutMs - * Timeout in Millisekunden. + * @param container der Container, zu dem diese Ergebnisemenge gehört. + * @param timeoutMs Timeout in Millisekunden. */ public RelatedResultSet(final IRelatedResultSetContainer container, final int timeoutMs) { super(); @@ -68,6 +64,7 @@ public RelatedResultSet(final IRelatedResultSetContainer container, final int ti this.timeoutMs = timeoutMs; } + @Override public void neuerWert(final IIndividualResult element, final T wert) { timerStarten(); backend.put(element, true); @@ -97,20 +94,19 @@ public void dispose() { * @return die Werte. Kann leer, aber nicht null sein. */ public Collection> getIndividualResults() { - final Collection> iRes = new ArrayList>(backend.size()); + final Collection> iRes = new ArrayList<>(backend.size()); iRes.addAll(backend.keySet()); return iRes; } /** - * Bestimmt, ob ein individuelles Ergebnis gültig ist oder nicht. Der Sinn - * der Methode besteht darin, dass man in der Methode - * {@link IRelatedResultSetContainer#resultSetComplete(boolean)} - * herausfinden kann, welche individuellen Ergebnisse IN DIESEM LAUF einen - * Wert geliefert haben. + * Bestimmt, ob ein individuelles Ergebnis gültig ist oder nicht. Der Sinn der + * Methode besteht darin, dass man in der Methode + * {@link IRelatedResultSetContainer#resultSetComplete(boolean)} herausfinden + * kann, welche individuellen Ergebnisse IN DIESEM LAUF einen Wert geliefert + * haben. * - * @param result - * das zu prüfende Ergebnis. + * @param result das zu prüfende Ergebnis. * * @return true - Ergebnis hat gültige Daten. */ diff --git a/src/main/java/com/bitctrl/util/resultset/package-info.java b/src/main/java/com/bitctrl/util/resultset/package-info.java index 8bef02a..39f5067 100644 --- a/src/main/java/com/bitctrl/util/resultset/package-info.java +++ b/src/main/java/com/bitctrl/util/resultset/package-info.java @@ -28,9 +28,9 @@ * erwartet und weitermachen will, wenn *
    *
  • Alle Werte da sind
  • - *
  • Eine maximale Wartezeit abgelaufen ist, nachdem der ERSTE Wert da ist.
  • + *
  • Eine maximale Wartezeit abgelaufen ist, nachdem der ERSTE Wert da + * ist.
  • *
- * + * */ package com.bitctrl.util.resultset; -