/**
* @version $Id: AbstractModelFactory.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
*
* 2011/08/19 13:41:03
* @author shingo-takahashi
*
* Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved.
*/
package com.tida_okinawa.corona.io.model.abstraction;
import java.util.ArrayList;
import java.util.List;
import com.tida_okinawa.corona.io.model.ICoronaProduct;
import com.tida_okinawa.corona.io.model.ICoronaProject;
import com.tida_okinawa.corona.io.model.IModelFactory;
/**
* @author shingo-takahashi
*/
public abstract class AbstractModelFactory implements IModelFactory {
protected List<ICoronaProject> projects = new ArrayList<ICoronaProject>();
protected List<ICoronaProduct> products = new ArrayList<ICoronaProduct>();
/**
* @return prjs
*/
public List<ICoronaProject> getProjects() {
return projects;
}
/**
* @return prds
*/
public List<ICoronaProduct> getProducts() {
return products;
}
@Override
public ICoronaProject createProject(String name) {
ICoronaProject prj = createProjectDam(name);
projects.add(prj);
return prj;
}
@Override
public ICoronaProduct createProduct(String name, ICoronaProject parent) {
ICoronaProduct product = createProductDam(name, parent);
if (product != null) {
products.add(product);
}
return product;
}
/**
* 指定された名前でプロジェクトを作成する。
*
* @param name
* @return 同名のプロジェクトがある場合は、その既存プロジェクト。
*/
abstract protected ICoronaProject createProjectDam(String name);
/**
* 指定されたプロジェクトに、ターゲットを作成する。
*
* @param name
* @param parent
* @return 作成したターゲット。同名のターゲットがある場合はnull
*/
abstract protected ICoronaProduct createProductDam(String name, ICoronaProject parent);
}