Skip to content

Commit

Permalink
Migrate to some Java 8 features.
Browse files Browse the repository at this point in the history
 - use obvious lambdas
 - use java.util.Optional instead of Guava's
 - New sort() interfaces of collections.
  • Loading branch information
shaeberling committed Jun 28, 2018
1 parent d7bf853 commit b1d6f34
Show file tree
Hide file tree
Showing 50 changed files with 122 additions and 213 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@

package org.retrostore.data.app;

import com.google.common.base.Optional;

import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
* Functionality to manage apps.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

package org.retrostore.data.app;

import com.google.common.base.Optional;
import com.google.common.base.Preconditions;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
* A caching layer for app management, with the same interface.
Expand All @@ -34,7 +34,7 @@ public class AppManagementCached implements AppManagement {
/** A real app management implementation. */
private final AppManagement mAppManagement;

/** TODO: Handle sorting. */
// TODO: Handle sorting.
/** Important: These items are not immutable and a client might change them. */
private final Map<String, AppStoreItem> mAppCacheById;
private final Map<Long, MediaImage> mMediaCacheById;
Expand Down Expand Up @@ -62,13 +62,11 @@ public void addOrChangeApp(AppStoreItem app) {
@Override
public Optional<AppStoreItem> getAppById(String id) {
if (mAppCacheById.containsKey(id)) {
return Optional.of(mAppCacheById.get(id));
return java.util.Optional.of(mAppCacheById.get(id));
}

Optional<AppStoreItem> appOpt = mAppManagement.getAppById(id);
if (appOpt.isPresent()) {
mAppCacheById.put(appOpt.get().id, appOpt.get());
}
appOpt.ifPresent(appStoreItem -> mAppCacheById.put(appStoreItem.id, appStoreItem));
return appOpt;
}

Expand Down Expand Up @@ -148,7 +146,7 @@ public Optional<Author> getAuthorById(long id) {
if (mAuthorCacheById.isEmpty()) {
updateAuthorCache();
}
return Optional.fromNullable(mAuthorCacheById.get(id));
return Optional.ofNullable(mAuthorCacheById.get(id));
}

private void updateAppCacheItem(String id) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,17 @@

package org.retrostore.data.app;

import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.googlecode.objectify.Key;
import org.retrostore.data.BlobstoreWrapper;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.logging.Logger;

import static com.googlecode.objectify.ObjectifyService.ofy;
Expand All @@ -54,7 +53,7 @@ public void addOrChangeApp(AppStoreItem app) {

@Override
public Optional<AppStoreItem> getAppById(String id) {
return Optional.fromNullable(ofy().load().key(AppStoreItem.key(id)).now());
return Optional.ofNullable(ofy().load().key(AppStoreItem.key(id)).now());
}

@Override
Expand Down Expand Up @@ -192,18 +191,12 @@ public long ensureAuthorExists(String name) {
@Override
public List<Author> listAuthors() {
List<Author> authors = ofy().load().type(Author.class).list();
Collections.sort(authors, new Comparator<Author>() {
@Override
public int compare(Author o1, Author o2) {
// Sort authors by name.
return o1.name.compareTo(o2.name);
}
});
authors.sort(Comparator.comparing(o -> o.name));
return authors;
}

@Override
public Optional<Author> getAuthorById(long id) {
return Optional.fromNullable(ofy().load().key(Author.key(id)).now());
return Optional.ofNullable(ofy().load().key(Author.key(id)).now());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package org.retrostore.data.card;

import com.google.common.base.Optional;
import java.util.Optional;

/**
* Manages RetorCard data such as firmware.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ public int addFirmwareVersion(int revision, byte[] data) {
}

@Override
public Optional<byte[]> getFirmware(int revision, int version) {
public java.util.Optional<byte[]> getFirmware(int revision, int version) {
Optional<RetroCardFirmware> firmware = Optional.fromNullable(ofy().load()
.key(RetroCardFirmware.key(revision, version)).now());
if (firmware.isPresent()) {
return Optional.fromNullable(firmware.get().data);
return java.util.Optional.ofNullable(firmware.get().data);
}
return Optional.absent();
return java.util.Optional.empty();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.common.base.Optional;

import java.util.List;
import java.util.Optional;

import static com.googlecode.objectify.ObjectifyService.ofy;

Expand All @@ -44,10 +44,7 @@ public boolean isCurrentUserAdmin() {
return false;
}
Optional<RetroStoreUser> user = getUserByEmail(loggedInEmail.get());
if (!user.isPresent()) {
return false;
}
return user.get().type == UserAccountType.ADMIN;
return user.filter(retroStoreUser -> retroStoreUser.type == UserAccountType.ADMIN).isPresent();
}

/**
Expand All @@ -56,9 +53,9 @@ public boolean isCurrentUserAdmin() {
public Optional<String> getLoggedInEmail() {
User currentUser = userService.getCurrentUser();
if (currentUser == null) {
return Optional.absent();
return Optional.empty();
}
return Optional.fromNullable(currentUser.getEmail());
return Optional.ofNullable(currentUser.getEmail());
}

/**
Expand All @@ -75,7 +72,8 @@ public boolean hasAdmin() {
}

/**
* Adds a new user if one with the given ID does not exist yet, otherwise changes the existing user with the given ID.
* Adds a new user if one with the given ID does not exist yet, otherwise changes the existing
* user with the given ID.
*/
public void addOrChangeUser(RetroStoreUser user) {
ofy().save().entity(user).now();
Expand All @@ -101,13 +99,13 @@ public List<RetroStoreUser> getAllUsers() {
* If it exists in the system, returns the user with the given email address.
*/
public Optional<RetroStoreUser> getUserByEmail(String email) {
return Optional.fromNullable(ofy().load().key(RetroStoreUser.key(email)).now());
return Optional.ofNullable(ofy().load().key(RetroStoreUser.key(email)).now());
}

public Optional<RetroStoreUser> getCurrentUser() {
User systemUser = userService.getCurrentUser();
if (systemUser == null) {
return Optional.absent();
return Optional.empty();
}
return getUserByEmail(systemUser.getEmail());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package org.retrostore.data.user;

import com.google.common.base.Optional;
import java.util.Optional;

import static com.google.common.base.Preconditions.checkNotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

package org.retrostore.data.user;

import com.google.common.base.Optional;
import org.retrostore.ui.Template;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Optional;
import java.util.logging.Logger;

/**
Expand Down
2 changes: 1 addition & 1 deletion appengine/src/main/java/org/retrostore/request/Cache.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import java.util.Optional;

/**
* A simple cache interface.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import org.retrostore.data.user.RetroStoreUser;
import org.retrostore.data.user.UserAccountType;
import org.retrostore.data.user.UserManagement;
import org.retrostore.data.user.UserService;

import java.util.Optional;
import java.util.logging.Logger;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import org.retrostore.data.user.UserService;
import org.retrostore.resources.ResourceLoader;

import java.util.Optional;

/**
* Handles loading favicon related files. We make this its own request so that no matter which
* request handler is being used (either for the admin backend or the main page), the favicon is
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import com.google.common.base.Strings;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
Expand All @@ -33,6 +32,7 @@

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import com.google.common.collect.Sets;
import org.retrostore.data.user.UserService;
import org.retrostore.resources.ResourceLoader;

import java.util.Optional;
import java.util.Set;
import java.util.logging.Logger;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import org.retrostore.data.user.UserService;
import org.retrostore.resources.ResourceLoader;

import java.util.Optional;
import java.util.logging.Logger;

public class PublicSiteRequest implements Request {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package org.retrostore.request;

import com.google.common.base.Optional;
import org.retrostore.data.app.AppManagement;
import org.retrostore.data.app.AppStoreItem;
import org.retrostore.data.user.UserService;
Expand All @@ -25,6 +24,7 @@
import org.retrostore.resources.ResourceLoader;
import org.retrostore.ui.Template;

import java.util.Optional;
import java.util.logging.Logger;

/**
Expand Down Expand Up @@ -97,11 +97,11 @@ private void servePost(RequestData requestData, Responder responder) {
return;
}

String emailMessage = " AppId : " + appid.or("n/a") + "\n";
String emailMessage = " AppId : " + appid.orElse("n/a") + "\n";
emailMessage += " App Name : " + appOpt.get().listing.name + "\n";
emailMessage += " Reporter Name : " + reporterName.or("n/a") + "\n";
emailMessage += " Reporter Email : " + reporterEmail.or("n/a") + "\n";
emailMessage += " Message:\n" + message.or("n/a") + "\n";
emailMessage += " Reporter Name : " + reporterName.orElse("n/a") + "\n";
emailMessage += " Reporter Email : " + reporterEmail.orElse("n/a") + "\n";
emailMessage += " Message:\n" + message.orElse("n/a") + "\n";
boolean success = mMailService.sendEmail(MAIL_TO, "New app report received", emailMessage);
if (!success) {
responder.respond("There was an error sending your message. Try again later.",
Expand All @@ -124,7 +124,7 @@ private void serveGet(String appId, Responder responder) {
if (app.screenshotsBlobKeys.size() > 0) {
Optional<String> servingUrl =
mImageService.getServingUrl(app.screenshotsBlobKeys.get(0), SCREENSHOT_SIZE);
screenshotUrl = servingUrl.or("");
screenshotUrl = servingUrl.orElse("");
}

Optional<byte[]> html = mResourceLoader.load("WEB-INF/html/report_app.html.inc");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@

package org.retrostore.request;

import com.google.common.base.Optional;

import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
* Interface for the request data.
Expand Down
Loading

0 comments on commit b1d6f34

Please sign in to comment.