0,0 → 1,87 |
package ak.hostadmiral.core.config; |
|
import java.util.List; |
import java.util.ArrayList; |
import java.util.Iterator; |
import ak.hostadmiral.util.ModelException; |
|
public class ConfigRoot |
{ |
private int versionMajor; |
private int versionMinor; |
private ConfigDataSource dataSource; |
private List initializations = new ArrayList(); // List(ConfigInitialization) |
|
public int getVersionMajor() |
{ |
return versionMajor; |
} |
|
public void setMajor(String major) |
{ |
this.versionMajor = Integer.parseInt(major); |
} |
|
public int getVersionMinor() |
{ |
return versionMinor; |
} |
|
public void setMinor(String minor) |
{ |
this.versionMinor = Integer.parseInt(minor); |
} |
|
public ConfigDataSource getDataSource() |
{ |
return dataSource; |
} |
|
public void setDataSource(ConfigDataSource dataSource) |
{ |
this.dataSource = dataSource; |
} |
|
public List getInitialization() |
{ |
return initializations; |
} |
|
public void addInitialization(ConfigInitialization initialization) |
{ |
initializations.add(initialization); |
} |
|
public ConfigRoot merge(ConfigRoot second) |
throws ModelException |
{ |
if(second == null) return this; |
|
if(this.versionMajor != second.versionMajor) |
throw new ModelException("First config has version " + this.versionMajor |
+ ", second - " + second.versionMajor); |
|
this.dataSource = dataSource.merge(second.dataSource); |
|
for(Iterator i = second.initializations.iterator(); i.hasNext(); ) { |
ConfigInitialization ci = (ConfigInitialization)i.next(); |
|
this.initializations.remove(ci); |
this.initializations.add(ci); |
} |
|
return this; |
} |
|
public String toString() |
{ |
StringBuffer initStr = new StringBuffer(); |
for(Iterator i = initializations.iterator(); i.hasNext(); ) { |
ConfigInitialization ci = (ConfigInitialization)i.next(); |
initStr.append(ci); |
} |
|
return "hostadmiral config v" + versionMajor + "." + versionMinor + "\n" |
+ dataSource + "\n\tinitializations:\n" + initStr.toString() + "end of config"; |
} |
} |