/*******************************************************************************
* Copyright (c) 2011, 2013 Red Hat Inc. and others.
* All rights reserved. This program and the accompanying materials
* are 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:
* Alexander Kurtakov - initial API and implementation
* Neil Guzman - python, ruby, perl implementation (B#350065,B#350066)
*******************************************************************************/
package org.eclipse.linuxtools.rpmstubby;
import org.eclipse.core.resources.IFile;
import org.eclipse.linuxtools.internal.rpmstubby.StubbyEggGenerator;
import org.eclipse.linuxtools.internal.rpmstubby.StubbyGemGenerator;
import org.eclipse.linuxtools.internal.rpmstubby.StubbyGenerator;
import org.eclipse.linuxtools.internal.rpmstubby.StubbyMakefilePLGenerator;
import org.eclipse.linuxtools.internal.rpmstubby.StubbyPomGenerator;
/**
* Utility API for stubifying spec files for different input types.
*
*/
public class Generator {
private InputType type;
/**
* Creates the generator for the given input type.
*
* @param type
* The input type for this generator.
*/
public Generator(InputType type) {
this.type = type;
}
/**
* Generate the spec file for the given input file.
*
* @param file
* The input file.
*/
public void generate(IFile file) {
switch (type) {
case ECLIPSE_FEATURE:
new StubbyGenerator(file).writeContent();
break;
case MAVEN_POM:
new StubbyPomGenerator(file).writeContent();
break;
case PYTHON_EGG:
new StubbyEggGenerator(file).writeContent();
break;
case RUBY_GEM:
new StubbyGemGenerator(file).writeContent();
break;
case PERL_MAKEFILE:
new StubbyMakefilePLGenerator(file).writeContent();
break;
default:
break;
}
}
}