Skip to content
Snippets Groups Projects
Commit a50f5cef authored by Hallvard Trætteberg's avatar Hallvard Trætteberg
Browse files

checkstyle og spotbugs

parent 33291bf7
No related branches found
No related tags found
No related merge requests found
...@@ -43,7 +43,7 @@ public class TodoModel implements Iterable<TodoList> { ...@@ -43,7 +43,7 @@ public class TodoModel implements Iterable<TodoList> {
/** /**
* Replaces an existing TodoList with the same name, or adds it. * Replaces an existing TodoList with the same name, or adds it.
* *
* @param todoList * @param todoList the TodoList
* @return the replaced TodoList, or null * @return the replaced TodoList, or null
*/ */
public TodoList putTodoList(TodoList todoList) { public TodoList putTodoList(TodoList todoList) {
......
package todolist.ui; package todolist.ui;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.net.http.HttpClient; import java.net.http.HttpClient;
import java.net.http.HttpRequest; import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpRequest.BodyPublishers; import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import com.fasterxml.jackson.databind.ObjectMapper;
import todolist.core.TodoList; import todolist.core.TodoList;
import todolist.core.TodoModel; import todolist.core.TodoModel;
import todolist.json.TodoModule; import todolist.json.TodoModule;
...@@ -35,9 +35,9 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -35,9 +35,9 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
private TodoModel getTodoModel() { private TodoModel getTodoModel() {
if (todoModel == null) { if (todoModel == null) {
HttpRequest request = HttpRequest.newBuilder(endpointBaseUri) HttpRequest request = HttpRequest.newBuilder(endpointBaseUri)
.header("Accept", "application/json") .header("Accept", "application/json")
.GET() .GET()
.build(); .build();
try { try {
final HttpResponse<String> response = final HttpResponse<String> response =
HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString());
...@@ -62,6 +62,14 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -62,6 +62,14 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
return allNames; return allNames;
} }
private String uriParam(String s) {
return URLEncoder.encode(s, StandardCharsets.UTF_8);
}
private URI todoListUri(String name) {
return endpointBaseUri.resolve(uriParam(name));
}
/** /**
* Gets the TodoList with the given name. * Gets the TodoList with the given name.
* *
...@@ -73,8 +81,8 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -73,8 +81,8 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
// if existing list has no todo items, try to (re)load // if existing list has no todo items, try to (re)load
if (oldTodoList == null || (!oldTodoList.iterator().hasNext())) { if (oldTodoList == null || (!oldTodoList.iterator().hasNext())) {
HttpRequest request = HttpRequest request =
HttpRequest.newBuilder(endpointBaseUri.resolve(URLEncoder.encode(name, StandardCharsets.UTF_8))) HttpRequest.newBuilder(todoListUri(name))
.header("Accept", "application/json").GET().build(); .header("Accept", "application/json").GET().build();
try { try {
final HttpResponse<String> response = final HttpResponse<String> response =
HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString());
...@@ -93,11 +101,11 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -93,11 +101,11 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
private void putTodoList(TodoList todoList) { private void putTodoList(TodoList todoList) {
try { try {
String json = objectMapper.writeValueAsString(todoList); String json = objectMapper.writeValueAsString(todoList);
HttpRequest request = HttpRequest.newBuilder(endpointBaseUri.resolve(URLEncoder.encode(todoList.getName(), StandardCharsets.UTF_8))) HttpRequest request = HttpRequest.newBuilder(todoListUri(todoList.getName()))
.header("Accept", "application/json") .header("Accept", "application/json")
.header("Content-Type", "application/json") .header("Content-Type", "application/json")
.PUT(BodyPublishers.ofString(json)) .PUT(BodyPublishers.ofString(json))
.build(); .build();
final HttpResponse<String> response = final HttpResponse<String> response =
HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString());
String responseString = response.body(); String responseString = response.body();
...@@ -127,10 +135,10 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -127,10 +135,10 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
*/ */
public void removeTodoList(String name) { public void removeTodoList(String name) {
try { try {
HttpRequest request = HttpRequest.newBuilder(endpointBaseUri.resolve(URLEncoder.encode(name, StandardCharsets.UTF_8))) HttpRequest request = HttpRequest.newBuilder(todoListUri(name))
.header("Accept", "application/json") .header("Accept", "application/json")
.DELETE() .DELETE()
.build(); .build();
final HttpResponse<String> response = final HttpResponse<String> response =
HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString());
String responseString = response.body(); String responseString = response.body();
...@@ -151,11 +159,11 @@ public class RemoteTodoModelAccess implements TodoModelAccess { ...@@ -151,11 +159,11 @@ public class RemoteTodoModelAccess implements TodoModelAccess {
*/ */
public void renameTodoList(String oldName, String newName) { public void renameTodoList(String oldName, String newName) {
try { try {
HttpRequest request = HttpRequest.newBuilder(endpointBaseUri.resolve(URLEncoder.encode(oldName, StandardCharsets.UTF_8))) HttpRequest request = HttpRequest.newBuilder(todoListUri(oldName))
.header("Accept", "application/json") .header("Accept", "application/json")
.header("Content-Type", "application/x-www-form-urlencoded") .header("Content-Type", "application/x-www-form-urlencoded")
.POST(BodyPublishers.ofString("newName=" + URLEncoder.encode(newName, StandardCharsets.UTF_8))) .POST(BodyPublishers.ofString("newName=" + uriParam(newName)))
.build(); .build();
final HttpResponse<String> response = final HttpResponse<String> response =
HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString());
String responseString = response.body(); String responseString = response.body();
......
...@@ -40,8 +40,8 @@ public class TodoAppController { ...@@ -40,8 +40,8 @@ public class TodoAppController {
// try to read file from home folder first // try to read file from home folder first
if (userTodoModelPath != null) { if (userTodoModelPath != null) {
try { try {
reader = new FileReader(Paths.get(System.getProperty("user.home"), userTodoModelPath).toFile(), reader = new FileReader(Paths.get(System.getProperty("user.home"),
StandardCharsets.UTF_8); userTodoModelPath).toFile(), StandardCharsets.UTF_8);
} catch (IOException ioex) { } catch (IOException ioex) {
System.err.println("Fant ingen " + userTodoModelPath + " på hjemmeområdet"); System.err.println("Fant ingen " + userTodoModelPath + " på hjemmeområdet");
} }
...@@ -80,7 +80,8 @@ public class TodoAppController { ...@@ -80,7 +80,8 @@ public class TodoAppController {
} }
if (todoModel == null) { if (todoModel == null) {
todoModel = new TodoModel(); todoModel = new TodoModel();
TodoList todoList = new TodoList("Helgehandling", new TodoItem().text("Øl"), new TodoItem().text("Pizza")); TodoList todoList = new TodoList("Helgehandling", new TodoItem().text("Øl"),
new TodoItem().text("Pizza"));
todoModel.addTodoList(todoList); todoModel.addTodoList(todoList);
} }
return todoModel; return todoModel;
......
...@@ -56,7 +56,7 @@ public class TodoModelController { ...@@ -56,7 +56,7 @@ public class TodoModelController {
} }
}); });
todoListsView.getSelectionModel().selectedIndexProperty().addListener((prop, oldIndex, newIndex) todoListsView.getSelectionModel().selectedIndexProperty().addListener((prop, oldIndex, newIndex)
-> { -> {
if (newIndex.intValue() == 0) { if (newIndex.intValue() == 0) {
todoListsView.setValue(""); todoListsView.setValue("");
} else { } else {
......
...@@ -41,6 +41,11 @@ public class TodoListResource { ...@@ -41,6 +41,11 @@ public class TodoListResource {
} }
} }
/**
* Gets the corresponding TodoList.
*
* @return the corresponding TodoList
*/
@GET @GET
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public TodoList getTodoList() { public TodoList getTodoList() {
......
...@@ -3,6 +3,8 @@ package todolist.restserver; ...@@ -3,6 +3,8 @@ package todolist.restserver;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.jackson.JacksonFeature;
...@@ -51,11 +53,14 @@ public class TodoConfig extends ResourceConfig { ...@@ -51,11 +53,14 @@ public class TodoConfig extends ResourceConfig {
private static TodoModel createDefaultTodoModel() { private static TodoModel createDefaultTodoModel() {
TodoPersistence todoPersistence = new TodoPersistence(); TodoPersistence todoPersistence = new TodoPersistence();
try (InputStream input = TodoConfig.class.getResourceAsStream("default-todomodel.json")) { URL url = TodoConfig.class.getResource("default-todomodel.json");
return todoPersistence.readTodoModel(new InputStreamReader(input, StandardCharsets.UTF_8)); if (url != null) {
} catch (IOException e) { try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
System.out.println("Couldn't read default-todomodel.json, so rigging TodoModel manually (" return todoPersistence.readTodoModel(reader);
+ e + ")"); } catch (IOException e) {
System.out.println("Couldn't read default-todomodel.json, so rigging TodoModel manually ("
+ e + ")");
}
} }
TodoModel todoModel = new TodoModel(); TodoModel todoModel = new TodoModel();
todoModel.addTodoList(new TodoList("todo1")); todoModel.addTodoList(new TodoList("todo1"));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment