Skip to content
Snippets Groups Projects
Commit 7c915981 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#96 - delete tags that are not referenced

parent 5d5f9bd7
No related branches found
No related tags found
1 merge request!213merge v1_6_0 into master
......@@ -83,7 +83,10 @@
</HBox>
<ScrollPane prefHeight="183.0" prefWidth="297.0" VBox.vgrow="ALWAYS">
<content>
<VBox fx:id="vboxCategories" spacing="5.0" />
<VBox fx:id="vboxCategories" spacing="5.0">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding></VBox>
</content>
</ScrollPane>
</children>
......@@ -155,7 +158,10 @@
</HBox>
<ScrollPane prefHeight="85.0" prefWidth="409.0" VBox.vgrow="ALWAYS">
<content>
<VBox fx:id="vboxTags" spacing="5.0" />
<VBox fx:id="vboxTags" spacing="5.0">
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding></VBox>
</content>
</ScrollPane>
</children>
......
package de.deadlocker8.budgetmasterserver.logic.database;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Used to mark model classes that only exists in order to allow gson to import and export the database
*
*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.SOURCE)
public @interface DatabaseImportExport {}
\ No newline at end of file
......@@ -386,4 +386,30 @@ public class DatabaseTagHandler
closeConnection(stmt);
}
}
public boolean isTagUsedInMatches(int tagID)
{
PreparedStatement stmt = null;
try
{
stmt = connection.prepareStatement("SELECT * FROM tag_match WHERE tag_match.Tag_ID = ?;");
stmt.setInt(1, tagID);
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
return true;
}
}
catch(SQLException e)
{
Logger.error(e);
}
finally
{
closeConnection(stmt);
}
return false;
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package de.deadlocker8.budgetmasterserver.server.tag.match;
import static spark.Spark.halt;
import de.deadlocker8.budgetmasterserver.logic.database.DatabaseTagHandler;
import de.deadlocker8.budgetmasterserver.server.updater.TagUpdater;
import spark.Request;
import spark.Response;
import spark.Route;
......@@ -36,6 +37,9 @@ public class TagMatchDeleteForPayment implements Route
tagHandler.deleteTagMatchForPayment(tagID, paymentID);
TagUpdater tagUpdater = new TagUpdater(tagHandler);
tagUpdater.deleteTagsIfNotReferenced();
return "";
}
catch(IllegalStateException ex)
......
......@@ -3,6 +3,7 @@ package de.deadlocker8.budgetmasterserver.server.tag.match;
import static spark.Spark.halt;
import de.deadlocker8.budgetmasterserver.logic.database.DatabaseTagHandler;
import de.deadlocker8.budgetmasterserver.server.updater.TagUpdater;
import spark.Request;
import spark.Response;
import spark.Route;
......@@ -36,6 +37,9 @@ public class TagMatchDeleteForRepeatingPayment implements Route
tagHandler.deleteTagMatchForRepeatingPayment(tagID, repeatingPaymentID);
TagUpdater tagUpdater = new TagUpdater(tagHandler);
tagUpdater.deleteTagsIfNotReferenced();
return "";
}
catch(IllegalStateException ex)
......
package de.deadlocker8.budgetmasterserver.server.updater;
import java.util.ArrayList;
import de.deadlocker8.budgetmaster.logic.tag.Tag;
import de.deadlocker8.budgetmasterserver.logic.database.DatabaseTagHandler;
public class TagUpdater
{
private DatabaseTagHandler tagHandler;
public TagUpdater(DatabaseTagHandler tagHandler)
{
this.tagHandler = tagHandler;
}
public void deleteTagsIfNotReferenced()
{
ArrayList<Tag> tags = tagHandler.getAllTags();
for(Tag currentTag : tags)
{
if(!tagHandler.isTagUsedInMatches(currentTag.getID()))
{
tagHandler.deleteTag(currentTag.getID());
}
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment