001package org.andromda.core.configuration; 002 003import java.io.Serializable; 004import java.util.ArrayList; 005import java.util.Collection; 006 007/** 008 * Stores the repository information for each model that AndroMDA will process. 009 * 010 * @author Chad Brandon 011 */ 012public class Repository 013 implements Serializable 014{ 015 private static final long serialVersionUID = 34L; 016 017 /** 018 * Stores the unique name of this repository. 019 */ 020 private String name; 021 022 /** 023 * Sets the unique (among other repositories) 024 * name. 025 * 026 * @param name the unique name of this repository. 027 */ 028 public void setName(final String name) 029 { 030 this.name = name; 031 } 032 033 /** 034 * Gets the unique name of this repository. 035 * 036 * @return the repository name. 037 */ 038 public String getName() 039 { 040 return this.name; 041 } 042 043 /** 044 * The models loaded by this repository. 045 */ 046 private final Collection<Model> models = new ArrayList<Model>(); 047 048 /** 049 * Adds a model that this repository will load. 050 * 051 * @param model the model to load. 052 */ 053 public void addModel(final Model model) 054 { 055 model.setRepository(this); 056 this.models.add(model); 057 } 058 059 /** 060 * Gets the model instances belonging to this repository. 061 * 062 * @return the of model instances. 063 */ 064 public Model[] getModels() 065 { 066 return this.models.toArray(new Model[this.models.size()]); 067 } 068}