![JAR search and dependency download from the Maven repository](/logo.png)
com.openshift.client.ApplicationBuilder Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright (c) 2013 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.client;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.openshift.client.cartridge.ICartridge;
import com.openshift.client.cartridge.IEmbeddableCartridge;
import com.openshift.client.cartridge.IStandaloneCartridge;
import com.openshift.internal.client.utils.Assert;
public class ApplicationBuilder {
private IDomain domain;
public ApplicationBuilder(IDomain domain) {
this.domain = domain;
}
public NamedBuilder setName(String name) {
return new NamedBuilder(name);
}
public class NamedBuilder {
private String name;
protected NamedBuilder(String name) {
this.name = name;
}
public NamedTypedCartridgeBuilder setStandaloneCartridge(IStandaloneCartridge standaloneCartridge) {
return new NamedTypedCartridgeBuilder(name, standaloneCartridge);
}
public NamedUnTypedCartridgeBuilder setCartridges(Collection cartridges) {
Assert.isTrue(cartridges != null
&& !cartridges.isEmpty());
return new NamedUnTypedCartridgeBuilder(name, cartridges);
}
}
protected abstract class AbstractNamedCartridgeBuilder {
protected String name;
protected IGearProfile gearProfile;
protected ApplicationScale applicationScale;
protected String initialGitUrl;
protected int timeout = IHttpClient.NO_TIMEOUT;
protected Map environmentVariables;
AbstractNamedCartridgeBuilder(String name) {
this.name = name;
}
public B setGearProfile(IGearProfile gearProfile) {
this.gearProfile = gearProfile;
return (B) this;
}
public B setApplicationScale(ApplicationScale applicationScale) {
this.applicationScale = applicationScale;
return (B) this;
}
public B setInitialGitUrl(String initialGitUrl) {
this.initialGitUrl = initialGitUrl;
return (B) this;
}
public B setTimeout(int timeout) {
this.timeout = timeout;
return (B) this;
}
public B setEnvironmentVariables(Map environmentVariables) {
this.environmentVariables = environmentVariables;
return (B) this;
}
}
public class NamedTypedCartridgeBuilder extends AbstractNamedCartridgeBuilder {
private IStandaloneCartridge standaloneCartridge;
private Collection embeddableCartridges;
NamedTypedCartridgeBuilder(String name, IStandaloneCartridge standaloneCartridge) {
super(name);
this.standaloneCartridge = standaloneCartridge;
}
public NamedTypedCartridgeBuilder setEmbeddableCartridges(IEmbeddableCartridge... embeddableCartridges) {
if (embeddableCartridges == null) {
return this;
}
this.embeddableCartridges = Arrays.asList(embeddableCartridges);
return this;
}
public IApplication build() {
return domain.createApplication(name, applicationScale, gearProfile, initialGitUrl, timeout, environmentVariables,
createCartridges(standaloneCartridge, embeddableCartridges));
}
protected ICartridge[] createCartridges(IStandaloneCartridge standaloneCartridge, Collection extends ICartridge> embeddableCartridges) {
List cartridges = new ArrayList();
cartridges.add(standaloneCartridge);
if (embeddableCartridges != null
&& !embeddableCartridges.isEmpty()) {
cartridges.addAll(embeddableCartridges);
}
return (ICartridge[]) cartridges.toArray(new ICartridge[cartridges.size()]);
}
}
public class NamedUnTypedCartridgeBuilder extends AbstractNamedCartridgeBuilder {
private Collection cartridges;
NamedUnTypedCartridgeBuilder(String name, Collection cartridges) {
super(name);
this.cartridges = cartridges;
}
public IApplication build() {
return domain.createApplication(name, applicationScale, gearProfile, initialGitUrl, timeout, environmentVariables,
cartridges.toArray(new ICartridge[cartridges.size()]));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy