All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 com.openshift.client.cartridge.IStandaloneCartridge;

public class ApplicationBuilder {

	private IDomain domain;
	private IStandaloneCartridge cartridge;
	private String name;
	private IGearProfile gearProfile;
	private ApplicationScale applicationScale;
	private String initialGitUrl;
	
	public ApplicationBuilder(IDomain domain) {
		this.domain = domain;
	}
	
	public CartridgeHolder setCartridge(IStandaloneCartridge cartridge) {
		ApplicationBuilder.this.cartridge = cartridge;
		return new CartridgeHolder();
	}
	
	public class CartridgeHolder {

		public NamedCartridgeHolder setName(String name) {
			ApplicationBuilder.this.name = name;
			return new NamedCartridgeHolder();
		};
	}
	
	public class NamedCartridgeHolder {
		
		public NamedCartridgeHolder setGearProfile(IGearProfile gearProfile) {
			ApplicationBuilder.this.gearProfile = gearProfile;
			return this;
		}
		
		public NamedCartridgeHolder setApplicationScale(ApplicationScale applicationScale) {
			ApplicationBuilder.this.applicationScale = applicationScale;
			return this;
		}

		public NamedCartridgeHolder setInitialGitUrl(String initialGitUrl) {
			ApplicationBuilder.this.initialGitUrl = initialGitUrl;
			return this;
		}

		public IApplication build() {
			return domain.createApplication(name, cartridge, applicationScale, gearProfile, initialGitUrl);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy