summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-06-16 18:22:54 +0200
committerSimon Rettberg2015-06-16 18:22:54 +0200
commit9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1 (patch)
treeb7fb7612f4319943426d8ca30d1a8a7fb68b4208 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java
parent[server] On mah way (lots of restructuring, some early db classes, sql dump o... (diff)
downloadtutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.tar.gz
tutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.tar.xz
tutor-module-9085dcdcb35ae1f9e3a592c8cd5dfecdd4e9bde1.zip
[server] Add script field to lecture table; implement getImageDetails method to get detailed information about an image from the database
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java
new file mode 100644
index 00000000..6cabd021
--- /dev/null
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbSoftwareTag.java
@@ -0,0 +1,70 @@
+package org.openslx.bwlp.sat.database.mappers;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.openslx.bwlp.sat.database.Database;
+import org.openslx.bwlp.sat.database.MysqlConnection;
+import org.openslx.bwlp.sat.database.MysqlStatement;
+
+public class DbSoftwareTag {
+
+ private static final Logger LOGGER = Logger.getLogger(DbSoftwareTag.class);
+
+ /**
+ * Get list of software installed in a certain image version.
+ *
+ * @param connection database connection to use
+ * @param imageVersionId UUID of image version
+ * @return list of software products
+ * @throws SQLException
+ */
+ public static List<String> getImageVersionSoftwareList(MysqlConnection connection, String imageVersionId)
+ throws SQLException {
+ MysqlStatement stmt = connection.prepareStatement("SELECT softwarestring FROM software"
+ + " INNER JOIN imageversion_x_software USING (softwareid)"
+ + " WHERE imageversionid = :imageversionid");
+ stmt.setString("imageversionid", imageVersionId);
+ ResultSet rs = stmt.executeQuery();
+ List<String> softwareList = new ArrayList<>();
+ while (rs.next()) {
+ softwareList.add(rs.getString("softwarestring"));
+ }
+ stmt.close();
+ return softwareList;
+ }
+
+ /**
+ * Get list of software installed in a certain image version.
+ *
+ * @param imageVersionId UUID of image version
+ * @return list of software products
+ * @throws SQLException
+ */
+ public static List<String> getImageVersionSoftwareList(String imageVersionId) throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ return getImageVersionSoftwareList(connection, imageVersionId);
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in DbSoftware.getImageVersionSoftwareList()", e);
+ throw e;
+ }
+ }
+
+ public static List<String> getImageTags(MysqlConnection connection, String imageBaseId) throws SQLException {
+ MysqlStatement stmt = connection.prepareStatement("SELECT displayname FROM tag"
+ + " INNER JOIN imagebase_x_tag USING (tagid)"
+ + " WHERE imagebaseid = :imagebaseid");
+ stmt.setString("imagebaseid", imageBaseId);
+ ResultSet rs = stmt.executeQuery();
+ List<String> tagList = new ArrayList<>();
+ while (rs.next()) {
+ tagList.add(rs.getString("displayname"));
+ }
+ stmt.close();
+ return tagList;
+ }
+
+}