package org.openntf.domino.config; import org.openntf.domino.Database; import org.openntf.domino.Document; public class ServerConfiguration extends ConfigurationObject { private String serverName_; public ServerConfiguration(final String serverName) { serverName_ = serverName; } @Override protected Object[] schema() { // @formatter:off return new Object[] { "ServerName", String.class, "ServerAlias", String.class, "XotsTasks", Integer.class, "XotsStopDelay", Integer.class }; // @formatter:on } public String getServerName() { return get("ServerName"); } public String getServerAlias() { return get("ServerAlias"); } public int getXotsTasks() { return get("XotsTasks", 10); } public int getXotsStopDelay() { return get("XotsStopDelay", 15); } /** * Returns the document for this server * * @return */ @Override protected Document getDocument(final boolean create) { Database odaDb = Configuration.getOdaDb(); if (odaDb == null) return null; String unid = Configuration.computeUNID("ServerConfig:".concat(serverName_), odaDb); Document currentConfig_ = odaDb.getDocumentByUNID(unid); if (currentConfig_ == null) { if (!create) return null; currentConfig_ = odaDb.createDocument(); currentConfig_.setUniversalID(unid); currentConfig_.replaceItemValue("Form", "Configuration"); currentConfig_.replaceItemValue("ServerName", serverName_).setNames(true); currentConfig_.replaceItemValue("$ConflictAction", "3"); // merge - no conflicts currentConfig_.save(); } return currentConfig_; } }