Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for
license information.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.containerregistry.implementation;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.containerregistry.Argument;
import com.microsoft.azure.management.containerregistry.DockerBuildStepUpdateParameters;
import com.microsoft.azure.management.containerregistry.DockerTaskStep;
import com.microsoft.azure.management.containerregistry.OverridingArgument;
import com.microsoft.azure.management.containerregistry.RegistryDockerTaskStep;
import com.microsoft.azure.management.containerregistry.RegistryTask;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import com.microsoft.azure.management.resources.fluentcore.utils.Utils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@LangDefinition
class RegistryDockerTaskStepImpl
extends RegistryTaskStepImpl
implements
RegistryDockerTaskStep,
RegistryDockerTaskStep.Definition,
RegistryDockerTaskStep.Update,
HasInner<DockerTaskStep> {
private DockerTaskStep inner;
private DockerBuildStepUpdateParameters dockerTaskStepUpdateParameters;
private RegistryTaskImpl taskImpl;
RegistryDockerTaskStepImpl(RegistryTaskImpl taskImpl) {
super(taskImpl.inner().step());
this.inner = new DockerTaskStep();
if (taskImpl.inner().step() != null && !(taskImpl.inner().step() instanceof DockerTaskStep)) {
throw new IllegalArgumentException("Constructor for RegistryDockerTaskStepImpl invoked for class that is not DockerTaskStep");
}
this.taskImpl = taskImpl;
this.dockerTaskStepUpdateParameters = new DockerBuildStepUpdateParameters();
}
@Override
public List<String> imageNames() {
DockerTaskStep dockerTaskStep = (DockerTaskStep) this.taskImpl.inner().step();
if (dockerTaskStep.imageNames() == null) {
return Collections.unmodifiableList(new ArrayList<String>());
}
return Collections.unmodifiableList(dockerTaskStep.imageNames());
}
@Override
public boolean isPushEnabled() {
DockerTaskStep dockerTaskStep = (DockerTaskStep) this.taskImpl.inner().step();
return Utils.toPrimitiveBoolean(dockerTaskStep.isPushEnabled());
}
@Override
public boolean noCache() {
DockerTaskStep dockerTaskStep = (DockerTaskStep) this.taskImpl.inner().step();
return Utils.toPrimitiveBoolean(dockerTaskStep.noCache());
}
@Override
public String dockerFilePath() {
DockerTaskStep dockerTaskStep = (DockerTaskStep) this.taskImpl.inner().step();
return dockerTaskStep.dockerFilePath();
}
@Override
public List<Argument> arguments() {
DockerTaskStep dockerTaskStep = (DockerTaskStep) this.taskImpl.inner().step();
if (dockerTaskStep.arguments() == null) {
return Collections.unmodifiableList(new ArrayList<Argument>());
}
return Collections.unmodifiableList(dockerTaskStep.arguments());
}
@Override
public RegistryDockerTaskStepImpl withDockerFilePath(String path) {
if (isInCreateMode()) {
this.inner.withDockerFilePath(path);
} else {
this.dockerTaskStepUpdateParameters.withDockerFilePath(path);
}
return this;
}
@Override
public RegistryDockerTaskStepImpl withImageNames(List<String> imageNames) {
if (isInCreateMode()) {
this.inner.withImageNames(imageNames);
} else {
this.dockerTaskStepUpdateParameters.withImageNames(imageNames);
}
return this;
}
@Override
public RegistryDockerTaskStepImpl withPushEnabled(boolean enabled) {
if (isInCreateMode()) {
this.inner.withIsPushEnabled(enabled);
} else {
this.dockerTaskStepUpdateParameters.withIsPushEnabled(enabled);
}
return this;
}
@Override
public RegistryDockerTaskStepImpl withCacheEnabled(boolean enabled) {
if (isInCreateMode()) {
this.inner.withNoCache(!enabled);
} else {
this.dockerTaskStepUpdateParameters.withNoCache(!enabled);
}
return this;
}
@Override
public RegistryDockerTaskStepImpl withOverridingArguments(Map<String, OverridingArgument> overridingArguments) {
if (overridingArguments.size() == 0) {
return this;
}
List<Argument> overridingValuesList = new ArrayList<Argument>();
for (Map.Entry<String, OverridingArgument> entry : overridingArguments.entrySet()) {
Argument value = new Argument();
value.withName(entry.getKey());
value.withValue(entry.getValue().value());
value.withIsSecret(entry.getValue().isSecret());
overridingValuesList.add(value);
}
if (isInCreateMode()) {
this.inner.withArguments(overridingValuesList);
} else {
this.dockerTaskStepUpdateParameters.withArguments(overridingValuesList);
}
return this;
}
@Override
public RegistryDockerTaskStepImpl withOverridingArgument(String name, OverridingArgument overridingArgument) {
if (this.inner.arguments() == null) {
this.inner.withArguments(new ArrayList<Argument>());
}
Argument value = new Argument();
value.withName(name);
value.withValue(overridingArgument.value());
value.withIsSecret(overridingArgument.isSecret());
if (isInCreateMode()) {
this.inner.arguments().add(value);
} else {
this.dockerTaskStepUpdateParameters.arguments().add(value);
}
return this;
}
@Override
public RegistryTask.DefinitionStages.SourceTriggerDefinition attach() {
this.taskImpl.withDockerTaskStepCreateParameters(inner);
return this.taskImpl;
}
@Override
public RegistryTask.Update parent() {
this.taskImpl.withDockerTaskStepUpdateParameters(dockerTaskStepUpdateParameters);
return this.taskImpl;
}
@Override
public DockerTaskStep inner() {
return this.inner;
}
private boolean isInCreateMode() {
if (this.taskImpl.inner().id() == null) {
return true;
}
return false;
}
}