| /* |
| * Copyright (c) 2017 Google Inc. All Rights Reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you |
| * may not use this file except in compliance with the License. You may |
| * obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| * implied. See the License for the specific language governing |
| * permissions and limitations under the License. |
| */ |
| |
| package com.android.vts.entity; |
| |
| import static com.googlecode.objectify.ObjectifyService.ofy; |
| |
| import com.google.appengine.api.datastore.Entity; |
| import com.googlecode.objectify.Key; |
| import com.googlecode.objectify.annotation.Cache; |
| import com.googlecode.objectify.annotation.Id; |
| import java.util.logging.Level; |
| import java.util.logging.Logger; |
| import lombok.Data; |
| import lombok.NoArgsConstructor; |
| |
| @com.googlecode.objectify.annotation.Entity(name = "TestPlan") |
| @Cache |
| @Data |
| @NoArgsConstructor |
| /** Entity describing test plan metadata. */ |
| public class TestPlanEntity implements DashboardEntity { |
| protected static final Logger logger = Logger.getLogger(TestPlanEntity.class.getName()); |
| |
| public static final String KIND = "TestPlan"; |
| |
| // Property keys |
| public static final String TEST_PLAN_NAME = "testPlanName"; |
| |
| @Id |
| public String testPlanName; |
| |
| /** |
| * Create a TestPlanEntity object. |
| * |
| * @param testPlanName The name of the test plan. |
| */ |
| public TestPlanEntity(String testPlanName) { |
| this.testPlanName = testPlanName; |
| } |
| |
| public Entity toEntity() { |
| Entity planEntity = new Entity(KIND, this.testPlanName); |
| return planEntity; |
| } |
| |
| public Key getKey() { |
| Key key = Key.create(TestPlanEntity.class, this.testPlanName); |
| return key; |
| } |
| |
| /** |
| * Convert an Entity object to a TestEntity. |
| * |
| * @param e The entity to process. |
| * @return TestEntity object with the properties from e processed, or null if incompatible. |
| */ |
| @SuppressWarnings("unchecked") |
| public static TestPlanEntity fromEntity(Entity e) { |
| if (!e.getKind().equals(KIND) || e.getKey().getName() == null |
| || !e.hasProperty(TEST_PLAN_NAME)) { |
| logger.log(Level.WARNING, "Missing test plan attributes in entity: " + e.toString()); |
| return null; |
| } |
| String testPlanName = e.getKey().getName(); |
| return new TestPlanEntity(testPlanName); |
| } |
| |
| /** Saving function for the instance of this class */ |
| @Override |
| public com.googlecode.objectify.Key<TestPlanEntity> save() { |
| return ofy().save().entity(this).now(); |
| } |
| } |