# HG changeset patch # User mschaefer # Date 1529561617 -7200 # Node ID d2472018740c04c486efdf0f4096027963714fcf # Parent cb3a91dc4e3b8bdddb31a99643bb17f3b16a2f95 Fixed dateformat with 4-digit year, added query method for collision years of a river diff -r cb3a91dc4e3b -r d2472018740c artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java Wed Jun 20 18:25:58 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/common/AbstractResultType.java Thu Jun 21 08:13:37 2018 +0200 @@ -88,7 +88,7 @@ protected final String exportDateValue(final CallContext context, final Date value) { final Locale locale = Resources.getLocale(context.getMeta()); - final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); + final DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, locale); return df.format(value); } diff -r cb3a91dc4e3b -r d2472018740c artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/LoadMultipleYearSelectState.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/LoadMultipleYearSelectState.java Wed Jun 20 18:25:58 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/collision/LoadMultipleYearSelectState.java Thu Jun 21 08:13:37 2018 +0200 @@ -9,14 +9,12 @@ package org.dive4elements.river.artifacts.sinfo.collision; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator; -import org.dive4elements.river.artifacts.model.CollisionHibernateFactory; import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; import org.dive4elements.river.artifacts.states.AddTableDataHelper; import org.dive4elements.river.artifacts.states.DefaultState; @@ -55,13 +53,13 @@ final CollisionAccess access = new CollisionAccess((SINFOArtifact) artifact); // Der River wurde im vorigen State bereits gesetzt - final List collisions = CollisionHibernateFactory.getCollisionsByRiver(access.getRiver()); - for (final Collision coll : collisions) { - final Integer year = coll.getYear(); + // final List collisions = CollisionHibernateFactory.getCollisionsByRiver(access.getRiver()); + // for (final Collision coll : collisions) { + for (final Integer year : Collision.getYearsOfRiver(access.getRiver())) { + // final Integer year = coll.getYear(); final Map row = new HashMap<>(); row.put("year", year.toString()); // Nullpointer? helper.addRow(row); - } helper.submitMapToXml(); } diff -r cb3a91dc4e3b -r d2472018740c backend/src/main/java/org/dive4elements/river/model/sinfo/Collision.java --- a/backend/src/main/java/org/dive4elements/river/model/sinfo/Collision.java Wed Jun 20 18:25:58 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/model/sinfo/Collision.java Thu Jun 21 08:13:37 2018 +0200 @@ -158,4 +158,25 @@ query.setParameter("id", id); return (Collision) query.list().get(0); } + + /** + * Selects from the database the years of the collisions of a river + */ + public static List getYearsOfRiver(final River river) { + final Session session = SessionHolder.HOLDER.get(); + final Query query = session.createQuery("SELECT c.year, COUNT(cv) AS count" + + " FROM Collision c INNER JOIN c.values cv" + + " WHERE c.river=:river" + + " GROUP BY c.year" + + " ORDER BY c.year"); + query.setParameter("river", river); + final List years = new ArrayList<>(); + final List rows = query.list(); + if (rows != null) { + for (int i = 0; i <= rows.size() - 1; i++) { + years.add(Integer.valueOf((int) rows.get(i)[0])); + } + } + return years; + } } \ No newline at end of file