summaryrefslogtreecommitdiff
path: root/src/main/java/com/android/vts/entity/BuildTargetEntity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/android/vts/entity/BuildTargetEntity.java')
-rw-r--r--src/main/java/com/android/vts/entity/BuildTargetEntity.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/com/android/vts/entity/BuildTargetEntity.java b/src/main/java/com/android/vts/entity/BuildTargetEntity.java
index ddcd4f8..b204d0c 100644
--- a/src/main/java/com/android/vts/entity/BuildTargetEntity.java
+++ b/src/main/java/com/android/vts/entity/BuildTargetEntity.java
@@ -19,9 +19,22 @@ package com.android.vts.entity;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
+import com.googlecode.objectify.annotation.Cache;
+import com.googlecode.objectify.annotation.Id;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
+
+import static com.googlecode.objectify.ObjectifyService.ofy;
+@com.googlecode.objectify.annotation.Entity(name = "BuildTarget")
+@Cache
+@Data
+@NoArgsConstructor
/** Entity describing a build target. */
public class BuildTargetEntity implements DashboardEntity {
protected static final Logger logger = Logger.getLogger(BuildTargetEntity.class.getName());
@@ -30,6 +43,8 @@ public class BuildTargetEntity implements DashboardEntity {
public Key key; // The key for the entity in the database.
+ @Id private String name;
+
/**
* Create a BuildTargetEntity object.
*
@@ -44,6 +59,39 @@ public class BuildTargetEntity implements DashboardEntity {
return new Entity(this.key);
}
+ /** find by Build Target Name */
+ public static List<String> getByBuildTarget(String buildTargetName) {
+ if (buildTargetName.equals("*")) {
+ return ofy().load()
+ .type(BuildTargetEntity.class)
+ .limit(100)
+ .list()
+ .stream()
+ .map(b -> b.name)
+ .collect(Collectors.toList());
+ } else {
+ com.googlecode.objectify.Key startKey =
+ com.googlecode.objectify.Key.create(BuildTargetEntity.class, buildTargetName);
+
+ int lastPosition = buildTargetName.length() - 1;
+ int lastCharValue = buildTargetName.charAt(lastPosition);
+ String nextChar = String.valueOf((char) (lastCharValue + 1));
+
+ String nextBuildTargetName = buildTargetName.substring(0, lastPosition) + nextChar;
+ com.googlecode.objectify.Key endKey =
+ com.googlecode.objectify.Key.create(
+ BuildTargetEntity.class, nextBuildTargetName);
+ return ofy().load()
+ .type(BuildTargetEntity.class)
+ .filterKey(">=", startKey)
+ .filterKey("<", endKey)
+ .list()
+ .stream()
+ .map(b -> b.name)
+ .collect(Collectors.toList());
+ }
+ }
+
/**
* Convert an Entity object to a BuildTargetEntity.
*