aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src/main/java
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-03-06 12:15:15 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-03-06 12:15:22 +0100
commit94ed63a7c64ddebf9056604535e4439a82ceecae (patch)
treeb8a2bb09bc2fe2653e80f8dda358da0795e8a176 /sonar-server/src/main/java
parent975dacb594135e449c621d254081f6e179ec51c3 (diff)
downloadsonarqube-94ed63a7c64ddebf9056604535e4439a82ceecae.tar.gz
sonarqube-94ed63a7c64ddebf9056604535e4439a82ceecae.zip
SONAR-5056 Create new Durations API to format Duration and convert String to Duration
Diffstat (limited to 'sonar-server/src/main/java')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/issue/IssueChangelogFormatter.java9
-rw-r--r--sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java7
-rw-r--r--sonar-server/src/main/java/org/sonar/server/platform/Platform.java6
-rw-r--r--sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java12
-rw-r--r--sonar-server/src/main/java/org/sonar/server/ui/JRubyI18n.java13
5 files changed, 23 insertions, 24 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/IssueChangelogFormatter.java b/sonar-server/src/main/java/org/sonar/server/issue/IssueChangelogFormatter.java
index d87e499e3e2..b8b86d3e60b 100644
--- a/sonar-server/src/main/java/org/sonar/server/issue/IssueChangelogFormatter.java
+++ b/sonar-server/src/main/java/org/sonar/server/issue/IssueChangelogFormatter.java
@@ -23,6 +23,7 @@ import org.sonar.api.ServerComponent;
import org.sonar.api.i18n.I18n;
import org.sonar.api.issue.internal.FieldDiffs;
import org.sonar.api.utils.Duration;
+import org.sonar.api.utils.Durations;
import org.sonar.core.issue.IssueUpdater;
import org.sonar.server.user.UserSession;
@@ -38,9 +39,11 @@ public class IssueChangelogFormatter implements ServerComponent {
private static final String ISSUE_CHANGELOG_FIELD = "issue.changelog.field.";
private final I18n i18n;
+ private final Durations durations;
- public IssueChangelogFormatter(I18n i18n) {
+ public IssueChangelogFormatter(I18n i18n, Durations durations) {
this.i18n = i18n;
+ this.durations = durations;
}
public List<String> format(Locale locale, FieldDiffs diffs) {
@@ -72,10 +75,10 @@ public class IssueChangelogFormatter implements ServerComponent {
String oldValueString = oldValue != null && !"".equals(oldValue) ? oldValue.toString() : null;
if (IssueUpdater.TECHNICAL_DEBT.equals(key)) {
if (newValueString != null) {
- newValueString = i18n.formatWorkDuration(UserSession.get().locale(), Duration.create(Long.parseLong(newValueString)));
+ newValueString = durations.format(UserSession.get().locale(), Duration.create(Long.parseLong(newValueString)), Durations.DurationFormat.SHORT);
}
if (oldValueString != null) {
- oldValueString = i18n.formatWorkDuration(UserSession.get().locale(), Duration.create(Long.parseLong(oldValueString)));
+ oldValueString = durations.format(UserSession.get().locale(), Duration.create(Long.parseLong(oldValueString)), Durations.DurationFormat.SHORT);
}
}
return new IssueChangelogDiffFormat(oldValueString, newValueString);
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
index 116b32da940..3a78d88179f 100644
--- a/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
+++ b/sonar-server/src/main/java/org/sonar/server/issue/ws/IssueShowWsHandler.java
@@ -34,6 +34,7 @@ import org.sonar.api.technicaldebt.server.Characteristic;
import org.sonar.api.user.User;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.Duration;
+import org.sonar.api.utils.Durations;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.api.web.UserRole;
import org.sonar.core.component.ComponentDto;
@@ -64,15 +65,17 @@ public class IssueShowWsHandler implements RequestHandler {
private final ActionService actionService;
private final DefaultTechnicalDebtManager technicalDebtManager;
private final I18n i18n;
+ private final Durations durations;
public IssueShowWsHandler(IssueFinder issueFinder, IssueService issueService, IssueChangelogService issueChangelogService, ActionService actionService,
- DefaultTechnicalDebtManager technicalDebtManager, I18n i18n) {
+ DefaultTechnicalDebtManager technicalDebtManager, I18n i18n, Durations durations) {
this.issueFinder = issueFinder;
this.issueService = issueService;
this.issueChangelogService = issueChangelogService;
this.actionService = actionService;
this.technicalDebtManager = technicalDebtManager;
this.i18n = i18n;
+ this.durations = durations;
}
@Override
@@ -115,7 +118,7 @@ public class IssueShowWsHandler implements RequestHandler {
.prop("author", issue.authorLogin())
.prop("actionPlan", actionPlanKey)
.prop("actionPlanName", actionPlan != null ? actionPlan.name() : null)
- .prop("debt", debt != null ? i18n.formatWorkDuration(UserSession.get().locale(), debt) : null)
+ .prop("debt", debt != null ? durations.format(UserSession.get().locale(), debt, Durations.DurationFormat.SHORT) : null)
.prop("creationDate", DateUtils.formatDateTime(issue.creationDate()))
.prop("fCreationDate", formatDate(issue.creationDate()))
.prop("updateDate", updateDate != null ? DateUtils.formatDateTime(updateDate) : null)
diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 619cc7b6625..4a4f73cb465 100644
--- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -32,18 +32,17 @@ import org.sonar.api.resources.Languages;
import org.sonar.api.resources.ResourceTypes;
import org.sonar.api.rules.AnnotationRuleParser;
import org.sonar.api.rules.XMLRuleParser;
+import org.sonar.api.utils.Durations;
import org.sonar.api.utils.HttpDownloader;
import org.sonar.api.utils.TimeProfiler;
import org.sonar.api.utils.UriReader;
import org.sonar.api.utils.internal.TempFolderCleaner;
-import org.sonar.api.utils.internal.WorkDurationFactory;
import org.sonar.core.component.SnapshotPerspectives;
import org.sonar.core.component.db.ComponentDao;
import org.sonar.core.config.Logback;
import org.sonar.core.i18n.DefaultI18n;
import org.sonar.core.i18n.GwtI18n;
import org.sonar.core.i18n.RuleI18nManager;
-import org.sonar.core.i18n.WorkDurationFormatter;
import org.sonar.core.issue.IssueFilterSerializer;
import org.sonar.core.issue.IssueNotifications;
import org.sonar.core.issue.IssueUpdater;
@@ -221,8 +220,7 @@ public final class Platform {
rootContainer.addSingleton(DefaultI18n.class);
rootContainer.addSingleton(RuleI18nManager.class);
rootContainer.addSingleton(GwtI18n.class);
- rootContainer.addSingleton(WorkDurationFormatter.class);
- rootContainer.addSingleton(WorkDurationFactory.class);
+ rootContainer.addSingleton(Durations.class);
rootContainer.addSingleton(PreviewDatabaseFactory.class);
rootContainer.addSingleton(SemaphoreUpdater.class);
diff --git a/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java b/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
index 8496e53051c..55b2cb52a4f 100644
--- a/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
+++ b/sonar-server/src/main/java/org/sonar/server/technicaldebt/DebtService.java
@@ -22,8 +22,6 @@ package org.sonar.server.technicaldebt;
import org.sonar.api.ServerComponent;
import org.sonar.api.technicaldebt.server.Characteristic;
-import org.sonar.api.utils.internal.WorkDuration;
-import org.sonar.api.utils.internal.WorkDurationFactory;
import org.sonar.core.technicaldebt.DefaultTechnicalDebtManager;
import javax.annotation.CheckForNull;
@@ -31,20 +29,14 @@ import javax.annotation.CheckForNull;
import java.util.List;
/**
- * Used through ruby code <pre>Internal.technical_debt</pre>
+ * Used through ruby code <pre>Internal.debt</pre>
*/
public class DebtService implements ServerComponent {
private final DefaultTechnicalDebtManager finder;
- private final WorkDurationFactory workDurationFactory;
- public DebtService(DefaultTechnicalDebtManager finder, WorkDurationFactory workDurationFactory) {
+ public DebtService(DefaultTechnicalDebtManager finder) {
this.finder = finder;
- this.workDurationFactory = workDurationFactory;
- }
-
- public WorkDuration toWorkDuration(long debt) {
- return workDurationFactory.createFromMinutes(debt);
}
public List<Characteristic> findRootCharacteristics() {
diff --git a/sonar-server/src/main/java/org/sonar/server/ui/JRubyI18n.java b/sonar-server/src/main/java/org/sonar/server/ui/JRubyI18n.java
index 80a6ba85320..b0a2eb4061e 100644
--- a/sonar-server/src/main/java/org/sonar/server/ui/JRubyI18n.java
+++ b/sonar-server/src/main/java/org/sonar/server/ui/JRubyI18n.java
@@ -24,6 +24,7 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.ServerComponent;
import org.sonar.api.i18n.I18n;
import org.sonar.api.utils.Duration;
+import org.sonar.api.utils.Durations;
import org.sonar.core.i18n.GwtI18n;
import org.sonar.server.user.UserSession;
@@ -39,11 +40,13 @@ import java.util.Map;
public class JRubyI18n implements ServerComponent {
private I18n i18n;
+ private Durations durations;
private Map<String, Locale> localesByRubyKey = Maps.newHashMap();
private GwtI18n gwtI18n;
- public JRubyI18n(I18n i18n, GwtI18n gwtI18n) {
+ public JRubyI18n(I18n i18n, Durations durations, GwtI18n gwtI18n) {
this.i18n = i18n;
+ this.durations = durations;
this.gwtI18n = gwtI18n;
}
@@ -87,12 +90,12 @@ public class JRubyI18n implements ServerComponent {
return i18n.ageFromNow(UserSession.get().locale(), date);
}
- public String formatWorkDuration(Duration duration) {
- return i18n.formatWorkDuration(UserSession.get().locale(), duration);
+ public String formatDuration(Duration duration, String format) {
+ return durations.format(UserSession.get().locale(), duration, Durations.DurationFormat.valueOf(format));
}
- public String formatLongWorkDuration(long duration) {
- return formatWorkDuration(Duration.create(duration));
+ public String formatLongDuration(long duration, String format) {
+ return formatDuration(Duration.create(duration), format);
}
}