/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*******************************************************************************/
/**
*
*/
package org.ebayopensource.turmeric.eclipse.resources.model;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.lang.StringUtils;
import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants;
/**
* The Class ProjectInfo.
*
* @author yayu
*/
public class ProjectInfo extends AssetInfo {
private final String serviceLayer; //we still need this in order to show the service layer info
private String interfaceProjectName;
private String implementationProjectName;
private Set<String> requiredLibraries = new TreeSet<String>();
private Set<String> requiredProjects = new TreeSet<String>();
private Set<String> requiredServices = new TreeSet<String>();
/**
* Instantiates a new project info.
*
* @param name the name
* @param version the version
* @param dir the dir
* @param serviceLayer the service layer
*/
public ProjectInfo(String name, String version, String dir, String serviceLayer) {
this(name, version, dir, serviceLayer, IAssetInfo.TYPE_PROJECT);
}
/**
* Instantiates a new project info.
*
* @param name the name
* @param version the version
* @param dir the dir
*/
public ProjectInfo(String name, String version, String dir) {
this(name, version, dir, SOAProjectConstants.ServiceLayer.UNKNOWN.toString(),
IAssetInfo.TYPE_PROJECT);
}
/**
* Instantiates a new project info.
*
* @param name the name
* @param version the version
* @param dir the dir
* @param serviceLayer the service layer
* @param type the type
*/
public ProjectInfo(String name, String version, String dir,
String serviceLayer, String type) {
super(name, version, dir, type);
this.serviceLayer = StringUtils.defaultString(serviceLayer).trim();
}
/**
* Gets the required services.
*
* @return A set of required services
*/
public Set<String> getRequiredServices() {
return requiredServices;
}
/**
* Gets the interface project name.
*
* @return interface project name
*/
public String getInterfaceProjectName() {
return interfaceProjectName;
}
/**
* Sets the interface project name.
*
* @param interfaceProjectName the new interface project name
*/
public void setInterfaceProjectName(String interfaceProjectName) {
this.interfaceProjectName = interfaceProjectName;
}
/**
* Gets the implementation project name.
*
* @return Implementation project name
*/
public String getImplementationProjectName() {
return implementationProjectName;
}
/**
* Sets the implementation project name.
*
* @param implementationProjectName the new implementation project name
*/
public void setImplementationProjectName(String implementationProjectName) {
this.implementationProjectName = implementationProjectName;
}
/**
* Sets the required libraries.
*
* @param requiredLibraries the new required libraries
*/
public void setRequiredLibraries(Set<String> requiredLibraries) {
this.requiredLibraries = requiredLibraries;
}
/**
* Sets the required projects.
*
* @param requiredProjects the new required projects
*/
public void setRequiredProjects(Set<String> requiredProjects) {
this.requiredProjects = requiredProjects;
}
/**
* Gets the required projects.
*
* @return A Set of required projects.
*/
public Set<String> getRequiredProjects() {
return requiredProjects;
}
/**
* Gets the required libraries.
*
* @return a Set of required libraries
*/
public Set<String> getRequiredLibraries() {
return requiredLibraries;
}
/**
* Gets the service layer.
*
* @return Service layer
*/
public String getServiceLayer() {
return serviceLayer;
}
}