Skip to content

Commit

Permalink
Avoid cast to BuilderImpl
Browse files Browse the repository at this point in the history
  • Loading branch information
Ajay Kannan committed Jan 22, 2016
1 parent 2b0def1 commit 21794d1
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class Project extends ProjectInfo {

public static class Builder extends ProjectInfo.Builder {
private final ResourceManager resourceManager;
private ProjectInfo.Builder infoBuilder;
private ProjectInfo.BuilderImpl infoBuilder;

Builder(ResourceManager resourceManager) {
this.resourceManager = resourceManager;
Expand Down Expand Up @@ -118,8 +118,8 @@ public Project build() {
}
}

Project(ResourceManager resourceManager, ProjectInfo.Builder infoBuilder) {
super((BuilderImpl) infoBuilder);
Project(ResourceManager resourceManager, ProjectInfo.BuilderImpl infoBuilder) {
super(infoBuilder);
this.resourceManager = checkNotNull(resourceManager);
this.options = resourceManager.options();
}
Expand Down Expand Up @@ -234,4 +234,11 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE
in.defaultReadObject();
this.resourceManager = options.service();
}

static Project fromPb(
ResourceManager resourceManager,
com.google.api.services.cloudresourcemanager.model.Project answer) {
ProjectInfo info = ProjectInfo.fromPb(answer);
return new Project(resourceManager, new ProjectInfo.BuilderImpl(info));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,13 @@ final class ResourceManagerImpl
@Override
public Project create(final ProjectInfo project) {
try {
return new Project(
this,
ProjectInfo.fromPb(runWithRetries(
return Project.fromPb(this, runWithRetries(
new Callable<com.google.api.services.cloudresourcemanager.model.Project>() {
@Override
public com.google.api.services.cloudresourcemanager.model.Project call() {
return resourceManagerRpc.create(project.toPb());
}
}, options().retryParams(), EXCEPTION_HANDLER)).toBuilder());
}, options().retryParams(), EXCEPTION_HANDLER));
} catch (RetryHelperException e) {
throw ResourceManagerException.translateAndThrow(e);
}
Expand Down Expand Up @@ -88,7 +86,7 @@ public com.google.api.services.cloudresourcemanager.model.Project call() {
return resourceManagerRpc.get(projectId, optionsMap);
}
}, options().retryParams(), EXCEPTION_HANDLER);
return answer == null ? null : new Project(this, ProjectInfo.fromPb(answer).toBuilder());
return answer == null ? null : Project.fromPb(this, answer);
} catch (RetryHelperException e) {
throw ResourceManagerException.translateAndThrow(e);
}
Expand Down Expand Up @@ -142,7 +140,7 @@ Iterable<com.google.api.services.cloudresourcemanager.model.Project>> call() {
public Project apply(
com.google.api.services.cloudresourcemanager.model.Project projectPb) {
return new Project(
serviceOptions.service(), ProjectInfo.fromPb(projectPb).toBuilder());
serviceOptions.service(), new ProjectInfo.BuilderImpl(ProjectInfo.fromPb(projectPb)));
}
});
return new PageImpl<>(
Expand All @@ -155,13 +153,13 @@ public Project apply(
@Override
public Project replace(final ProjectInfo newProject) {
try {
return new Project(this, ProjectInfo.fromPb(runWithRetries(
return Project.fromPb(this, runWithRetries(
new Callable<com.google.api.services.cloudresourcemanager.model.Project>() {
@Override
public com.google.api.services.cloudresourcemanager.model.Project call() {
return resourceManagerRpc.replace(newProject.toPb());
}
}, options().retryParams(), EXCEPTION_HANDLER)).toBuilder());
}, options().retryParams(), EXCEPTION_HANDLER));
} catch (RetryHelperException e) {
throw ResourceManagerException.translateAndThrow(e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ public void setUp() throws Exception {
expect(serviceMockReturnsOptions.options()).andReturn(mockOptions).anyTimes();
replay(serviceMockReturnsOptions);
resourceManager = createStrictMock(ResourceManager.class);
expectedProject = new Project(serviceMockReturnsOptions, PROJECT_INFO.toBuilder());
expectedProject =
new Project(serviceMockReturnsOptions, new ProjectInfo.BuilderImpl(PROJECT_INFO));
}

@After
Expand All @@ -67,7 +68,7 @@ public void tearDown() throws Exception {
}

private void initializeProject() {
project = new Project(resourceManager, PROJECT_INFO.toBuilder());
project = new Project(resourceManager, new ProjectInfo.BuilderImpl(PROJECT_INFO));
}

@Test
Expand Down Expand Up @@ -105,7 +106,8 @@ public void testGet() {
@Test
public void testReload() {
ProjectInfo newInfo = PROJECT_INFO.toBuilder().addLabel("k3", "v3").build();
Project expectedProject = new Project(serviceMockReturnsOptions, newInfo.toBuilder());
Project expectedProject =
new Project(serviceMockReturnsOptions, new ProjectInfo.BuilderImpl(newInfo));
expect(resourceManager.options()).andReturn(mockOptions);
expect(resourceManager.get(PROJECT_INFO.projectId())).andReturn(expectedProject);
replay(resourceManager);
Expand All @@ -126,7 +128,8 @@ public void testReloadNull() {
expect(resourceManager.options()).andReturn(mockOptions);
expect(resourceManager.get(PROJECT_INFO.projectId())).andReturn(null);
replay(resourceManager);
Project reloadedProject = new Project(resourceManager, PROJECT_INFO.toBuilder()).reload();
Project reloadedProject =
new Project(resourceManager, new ProjectInfo.BuilderImpl(PROJECT_INFO)).reload();
assertNull(reloadedProject);
}

Expand Down Expand Up @@ -157,7 +160,8 @@ public void testUndelete() {
@Test
public void testReplace() {
ProjectInfo newInfo = PROJECT_INFO.toBuilder().addLabel("k3", "v3").build();
Project expectedProject = new Project(serviceMockReturnsOptions, newInfo.toBuilder());
Project expectedProject =
new Project(serviceMockReturnsOptions, new ProjectInfo.BuilderImpl(newInfo));
expect(resourceManager.options()).andReturn(mockOptions);
expect(resourceManager.replace(newInfo)).andReturn(expectedProject);
replay(resourceManager);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,9 @@ public void testRetryableException() {
.andReturn(PARTIAL_PROJECT.toPb());
EasyMock.replay(resourceManagerRpcMock);
Project returnedProject = resourceManagerMock.get(PARTIAL_PROJECT.projectId());
assertEquals(new Project(resourceManagerMock, PARTIAL_PROJECT.toBuilder()), returnedProject);
assertEquals(
new Project(resourceManagerMock, new ProjectInfo.BuilderImpl(PARTIAL_PROJECT)),
returnedProject);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class SerializationTest {
.createTimeMillis(1234L)
.build();
private static final Project PROJECT =
new Project(RESOURCE_MANAGER, FULL_PROJECT_INFO.toBuilder());
new Project(RESOURCE_MANAGER, new ProjectInfo.BuilderImpl(FULL_PROJECT_INFO));
private static final PageImpl<Project> PAGE_RESULT =
new PageImpl<>(null, "c", Collections.singletonList(PROJECT));
private static final ResourceManager.ProjectGetOption PROJECT_GET_OPTION =
Expand Down

0 comments on commit 21794d1

Please sign in to comment.