
## File generated automatically by genClass.py
## Do not edit this file directly.

import string
import os
from md5 import md5
from Alchemist import *
from xml.xslt.Processor import Processor
from gtk import FALSE
from gtk import TRUE


class env:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("EnvType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__EnvType = child
		except (KeyError): self.__EnvType = None

		child = None
		try:
			child = list.getChildByName("Var")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Var = child
		except (KeyError): self.__Var = None

		child = None
		try:
			child = list.getChildByName("Value")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Value = child
		except (KeyError): self.__Value = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		return self.__list.unlink()

	def setEnvType(self, value):
		if self.__EnvType == None:
			self.__EnvType = self.__list.addChild(Data.ADM_TYPE_STRING, "EnvType")
		return self.__EnvType.setValue(value)

	def getEnvType(self):
		if self.__EnvType == None: return None
		return self.__EnvType.getValue()

	def delEnvType(self):
		if self.__EnvType == None: return None
		child = self.__EnvType
		self.__EnvType = None
		child.unlink()

	def setVar(self, value):
		if self.__Var == None:
			self.__Var = self.__list.addChild(Data.ADM_TYPE_STRING, "Var")
		return self.__Var.setValue(value)

	def getVar(self):
		if self.__Var == None: return None
		return self.__Var.getValue()

	def delVar(self):
		if self.__Var == None: return None
		child = self.__Var
		self.__Var = None
		child.unlink()

	def setValue(self, value):
		if self.__Value == None:
			self.__Value = self.__list.addChild(Data.ADM_TYPE_STRING, "Value")
		return self.__Value.setValue(value)

	def getValue(self):
		if self.__Value == None: return None
		return self.__Value.getValue()

	def delValue(self):
		if self.__Value == None: return None
		child = self.__Value
		self.__Value = None
		child.unlink()


class environment:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delenvironment()

	def getenv(self, pos):
		return env(self.__list.getChildByIndex(pos), self)

	def delenv(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def addenv(self):
		return env(self.__list.addChild(Data.ADM_TYPE_LIST, "env"), self)

	def getNumenv(self):
		return self.__list.getNumChildren()

	def moveenv(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)


class errordocument:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("Code")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__Code = child
		except (KeyError): self.__Code = None

		child = None
		try:
			child = list.getChildByName("Document")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Document = child
		except (KeyError): self.__Document = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		return self.__list.unlink()

	def setCode(self, value):
		if self.__Code == None:
			self.__Code = self.__list.addChild(Data.ADM_TYPE_INT, "Code")
		return self.__Code.setValue(value)

	def getCode(self):
		if self.__Code == None: return None
		return self.__Code.getValue()

	def delCode(self):
		if self.__Code == None: return None
		child = self.__Code
		self.__Code = None
		child.unlink()

	def setDocument(self, value):
		if self.__Document == None:
			self.__Document = self.__list.addChild(Data.ADM_TYPE_STRING, "Document")
		return self.__Document.setValue(value)

	def getDocument(self):
		if self.__Document == None: return None
		return self.__Document.getValue()

	def delDocument(self):
		if self.__Document == None: return None
		child = self.__Document
		self.__Document = None
		child.unlink()


class errordocuments:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delerrordocuments()

	def geterrordocument(self, pos):
		return errordocument(self.__list.getChildByIndex(pos), self)

	def delerrordocument(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def adderrordocument(self):
		return errordocument(self.__list.addChild(Data.ADM_TYPE_LIST, "errordocument"), self)

	def getNumerrordocument(self):
		return self.__list.getNumChildren()

	def moveerrordocument(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)


class listener:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().dellistener()

	def setListen(self, pos, value):
		child = self.__list.getChildByIndex(pos)
		return child.setValue(value)

	def getListen(self, pos):
		return self.__list.getChildByIndex(pos).getValue()

	def delListen(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def addListen(self):
		self.__list.addChild(Data.ADM_TYPE_STRING, "Listen")
		return (self.__list.getNumChildren() - 1)

	def getNumListen(self):
		return self.__list.getNumChildren()

	def moveListen(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)

class namevirtualhosts:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delnamevirtualhosts()

	def setNameVirtualHost(self, pos, value):
		child = self.__list.getChildByIndex(pos)
		return child.setValue(value)

	def getNameVirtualHost(self, pos):
		return self.__list.getChildByIndex(pos).getValue()

	def delNameVirtualHost(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def addNameVirtualHost(self):
		self.__list.addChild(Data.ADM_TYPE_STRING, "NameVirtualHost")
		return (self.__list.getNumChildren() - 1)

	def getNumNameVirtualHost(self):
		return self.__list.getNumChildren()

	def moveNameVirtualHost(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)

class serveroptions:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("AccessConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessConfig = child
		except (KeyError): self.__AccessConfig = None

		child = None
		try:
			child = list.getChildByName("AccessFileName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessFileName = child
		except (KeyError): self.__AccessFileName = None

		child = None
		try:
			child = list.getChildByName("AddDefaultCharset")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AddDefaultCharset = child
		except (KeyError): self.__AddDefaultCharset = None

		child = None
		try:
			child = list.getChildByName("AddModule")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AddModule = child
		except (KeyError): self.__AddModule = None

		child = None
		try:
			child = list.getChildByName("BindAddress")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__BindAddress = child
		except (KeyError): self.__BindAddress = None

		child = None
		try:
			child = list.getChildByName("BS2000Account")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__BS2000Account = child
		except (KeyError): self.__BS2000Account = None

		child = None
		try:
			child = list.getChildByName("ClearModuleList")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ClearModuleList = child
		except (KeyError): self.__ClearModuleList = None

		child = None
		try:
			child = list.getChildByName("ContentDigest")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ContentDigest = child
		except (KeyError): self.__ContentDigest = None

		child = None
		try:
			child = list.getChildByName("CoreDumpDirectory")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__CoreDumpDirectory = child
		except (KeyError): self.__CoreDumpDirectory = None

		child = None
		try:
			child = list.getChildByName("DefaultType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DefaultType = child
		except (KeyError): self.__DefaultType = None

		child = None
		try:
			child = list.getChildByName("DirectoryIndex")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DirectoryIndex = child
		except (KeyError): self.__DirectoryIndex = None

		child = None
		try:
			child = list.getChildByName("DocumentRoot")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DocumentRoot = child
		except (KeyError): self.__DocumentRoot = None

		child = None
		try:
			child = list.getChildByName("environment")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__environment = environment(child, self)
		except (KeyError): self.__environment = None

		child = None
		try:
			child = list.getChildByName("errordocuments")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__errordocuments = errordocuments(child, self)
		except (KeyError): self.__errordocuments = None

		child = None
		try:
			child = list.getChildByName("ErrorLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ErrorLog = child
		except (KeyError): self.__ErrorLog = None

		child = None
		try:
			child = list.getChildByName("Group")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Group = child
		except (KeyError): self.__Group = None

		child = None
		try:
			child = list.getChildByName("HostNameLookups")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__HostNameLookups = child
		except (KeyError): self.__HostNameLookups = None

		child = None
		try:
			child = list.getChildByName("IdentityCheck")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__IdentityCheck = child
		except (KeyError): self.__IdentityCheck = None

		child = None
		try:
			child = list.getChildByName("Include")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Include = child
		except (KeyError): self.__Include = None

		child = None
		try:
			child = list.getChildByName("KeepAlive")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__KeepAlive = child
		except (KeyError): self.__KeepAlive = None

		child = None
		try:
			child = list.getChildByName("KeepAliveTimeout")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__KeepAliveTimeout = child
		except (KeyError): self.__KeepAliveTimeout = None

		child = None
		try:
			child = list.getChildByName("LimitRequestBody")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__LimitRequestBody = child
		except (KeyError): self.__LimitRequestBody = None

		child = None
		try:
			child = list.getChildByName("LimitRequestFields")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__LimitRequestFields = child
		except (KeyError): self.__LimitRequestFields = None

		child = None
		try:
			child = list.getChildByName("LimitRequestFieldsize")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__LimitRequestFieldsize = child
		except (KeyError): self.__LimitRequestFieldsize = None

		child = None
		try:
			child = list.getChildByName("LimitRequestLine")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__LimitRequestLine = child
		except (KeyError): self.__LimitRequestLine = None

		child = None
		try:
			child = list.getChildByName("listener")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__listener = listener(child, self)
		except (KeyError): self.__listener = None

		child = None
		try:
			child = list.getChildByName("ListenBacklog")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__ListenBacklog = child
		except (KeyError): self.__ListenBacklog = None

		child = None
		try:
			child = list.getChildByName("LockFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LockFile = child
		except (KeyError): self.__LockFile = None

		child = None
		try:
			child = list.getChildByName("LogFormat")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogFormat = child
		except (KeyError): self.__LogFormat = None

		child = None
		try:
			child = list.getChildByName("LogLevel")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogLevel = child
		except (KeyError): self.__LogLevel = None

		child = None
		try:
			child = list.getChildByName("MaxClients")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__MaxClients = child
		except (KeyError): self.__MaxClients = None

		child = None
		try:
			child = list.getChildByName("MaxKeepAliveRequests")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__MaxKeepAliveRequests = child
		except (KeyError): self.__MaxKeepAliveRequests = None

		child = None
		try:
			child = list.getChildByName("MaxRequestsPerChild")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__MaxRequestsPerChild = child
		except (KeyError): self.__MaxRequestsPerChild = None

		child = None
		try:
			child = list.getChildByName("MaxSpareServers")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__MaxSpareServers = child
		except (KeyError): self.__MaxSpareServers = None

		child = None
		try:
			child = list.getChildByName("MinSpareServers")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__MinSpareServers = child
		except (KeyError): self.__MinSpareServers = None

		child = None
		try:
			child = list.getChildByName("namevirtualhosts")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__namevirtualhosts = namevirtualhosts(child, self)
		except (KeyError): self.__namevirtualhosts = None

		child = None
		try:
			child = list.getChildByName("Options")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Options = child
		except (KeyError): self.__Options = None

		child = None
		try:
			child = list.getChildByName("PidFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__PidFile = child
		except (KeyError): self.__PidFile = None

		child = None
		try:
			child = list.getChildByName("Port")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__Port = child
		except (KeyError): self.__Port = None

		child = None
		try:
			child = list.getChildByName("ResourceConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ResourceConfig = child
		except (KeyError): self.__ResourceConfig = None

		child = None
		try:
			child = list.getChildByName("RLimitCPU")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitCPU = child
		except (KeyError): self.__RLimitCPU = None

		child = None
		try:
			child = list.getChildByName("RLimitMEM")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitMEM = child
		except (KeyError): self.__RLimitMEM = None

		child = None
		try:
			child = list.getChildByName("RLimitNPROC")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitNPROC = child
		except (KeyError): self.__RLimitNPROC = None

		child = None
		try:
			child = list.getChildByName("Satisfy")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Satisfy = child
		except (KeyError): self.__Satisfy = None

		child = None
		try:
			child = list.getChildByName("ScoreBoardFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ScoreBoardFile = child
		except (KeyError): self.__ScoreBoardFile = None

		child = None
		try:
			child = list.getChildByName("SendBufferSize")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__SendBufferSize = child
		except (KeyError): self.__SendBufferSize = None

		child = None
		try:
			child = list.getChildByName("ServerAdmin")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerAdmin = child
		except (KeyError): self.__ServerAdmin = None

		child = None
		try:
			child = list.getChildByName("ServerName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerName = child
		except (KeyError): self.__ServerName = None

		child = None
		try:
			child = list.getChildByName("ServerRoot")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerRoot = child
		except (KeyError): self.__ServerRoot = None

		child = None
		try:
			child = list.getChildByName("ServerSignature")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerSignature = child
		except (KeyError): self.__ServerSignature = None

		child = None
		try:
			child = list.getChildByName("ServerTokens")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerTokens = child
		except (KeyError): self.__ServerTokens = None

		child = None
		try:
			child = list.getChildByName("ServerType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerType = child
		except (KeyError): self.__ServerType = None

		child = None
		try:
			child = list.getChildByName("SSLMutex")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLMutex = child
		except (KeyError): self.__SSLMutex = None

		child = None
		try:
			child = list.getChildByName("SSLPassPhraseDialog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLPassPhraseDialog = child
		except (KeyError): self.__SSLPassPhraseDialog = None

		child = None
		try:
			child = list.getChildByName("SSLRandomSeedStartup")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLRandomSeedStartup = child
		except (KeyError): self.__SSLRandomSeedStartup = None

		child = None
		try:
			child = list.getChildByName("SSLRandomSeedConnect")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLRandomSeedConnect = child
		except (KeyError): self.__SSLRandomSeedConnect = None

		child = None
		try:
			child = list.getChildByName("SSLSessionCache")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLSessionCache = child
		except (KeyError): self.__SSLSessionCache = None

		child = None
		try:
			child = list.getChildByName("SSLSessionCacheTimeout")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLSessionCacheTimeout = child
		except (KeyError): self.__SSLSessionCacheTimeout = None

		child = None
		try:
			child = list.getChildByName("StartServers")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__StartServers = child
		except (KeyError): self.__StartServers = None

		child = None
		try:
			child = list.getChildByName("ThreadsPerChild")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__ThreadsPerChild = child
		except (KeyError): self.__ThreadsPerChild = None

		child = None
		try:
			child = list.getChildByName("ThreadStackSize")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__ThreadStackSize = child
		except (KeyError): self.__ThreadStackSize = None

		child = None
		try:
			child = list.getChildByName("TimeOut")
			if child.getType() != Data.ADM_TYPE_INT: raise TypeError
			self.__TimeOut = child
		except (KeyError): self.__TimeOut = None

		child = None
		try:
			child = list.getChildByName("TransferLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__TransferLog = child
		except (KeyError): self.__TransferLog = None

		child = None
		try:
			child = list.getChildByName("UseCanonicalName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__UseCanonicalName = child
		except (KeyError): self.__UseCanonicalName = None

		child = None
		try:
			child = list.getChildByName("User")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__User = child
		except (KeyError): self.__User = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delserveroptions()

	def setAccessConfig(self, value):
		if self.__AccessConfig == None:
			self.__AccessConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessConfig")
		return self.__AccessConfig.setValue(value)

	def getAccessConfig(self):
		if self.__AccessConfig == None: return None
		return self.__AccessConfig.getValue()

	def delAccessConfig(self):
		if self.__AccessConfig == None: return None
		child = self.__AccessConfig
		self.__AccessConfig = None
		child.unlink()

	def setAccessFileName(self, value):
		if self.__AccessFileName == None:
			self.__AccessFileName = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessFileName")
		return self.__AccessFileName.setValue(value)

	def getAccessFileName(self):
		if self.__AccessFileName == None: return None
		return self.__AccessFileName.getValue()

	def delAccessFileName(self):
		if self.__AccessFileName == None: return None
		child = self.__AccessFileName
		self.__AccessFileName = None
		child.unlink()

	def setAddDefaultCharset(self, value):
		if self.__AddDefaultCharset == None:
			self.__AddDefaultCharset = self.__list.addChild(Data.ADM_TYPE_STRING, "AddDefaultCharset")
		return self.__AddDefaultCharset.setValue(value)

	def getAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		return self.__AddDefaultCharset.getValue()

	def delAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		child = self.__AddDefaultCharset
		self.__AddDefaultCharset = None
		child.unlink()

	def setAddModule(self, value):
		if self.__AddModule == None:
			self.__AddModule = self.__list.addChild(Data.ADM_TYPE_STRING, "AddModule")
		return self.__AddModule.setValue(value)

	def getAddModule(self):
		if self.__AddModule == None: return None
		return self.__AddModule.getValue()

	def delAddModule(self):
		if self.__AddModule == None: return None
		child = self.__AddModule
		self.__AddModule = None
		child.unlink()

	def setBindAddress(self, value):
		if self.__BindAddress == None:
			self.__BindAddress = self.__list.addChild(Data.ADM_TYPE_STRING, "BindAddress")
		return self.__BindAddress.setValue(value)

	def getBindAddress(self):
		if self.__BindAddress == None: return None
		return self.__BindAddress.getValue()

	def delBindAddress(self):
		if self.__BindAddress == None: return None
		child = self.__BindAddress
		self.__BindAddress = None
		child.unlink()

	def setBS2000Account(self, value):
		if self.__BS2000Account == None:
			self.__BS2000Account = self.__list.addChild(Data.ADM_TYPE_STRING, "BS2000Account")
		return self.__BS2000Account.setValue(value)

	def getBS2000Account(self):
		if self.__BS2000Account == None: return None
		return self.__BS2000Account.getValue()

	def delBS2000Account(self):
		if self.__BS2000Account == None: return None
		child = self.__BS2000Account
		self.__BS2000Account = None
		child.unlink()

	def setClearModuleList(self, value):
		if self.__ClearModuleList == None:
			self.__ClearModuleList = self.__list.addChild(Data.ADM_TYPE_STRING, "ClearModuleList")
		return self.__ClearModuleList.setValue(value)

	def getClearModuleList(self):
		if self.__ClearModuleList == None: return None
		return self.__ClearModuleList.getValue()

	def delClearModuleList(self):
		if self.__ClearModuleList == None: return None
		child = self.__ClearModuleList
		self.__ClearModuleList = None
		child.unlink()

	def setContentDigest(self, value):
		if self.__ContentDigest == None:
			self.__ContentDigest = self.__list.addChild(Data.ADM_TYPE_STRING, "ContentDigest")
		return self.__ContentDigest.setValue(value)

	def getContentDigest(self):
		if self.__ContentDigest == None: return None
		return self.__ContentDigest.getValue()

	def delContentDigest(self):
		if self.__ContentDigest == None: return None
		child = self.__ContentDigest
		self.__ContentDigest = None
		child.unlink()

	def setCoreDumpDirectory(self, value):
		if self.__CoreDumpDirectory == None:
			self.__CoreDumpDirectory = self.__list.addChild(Data.ADM_TYPE_STRING, "CoreDumpDirectory")
		return self.__CoreDumpDirectory.setValue(value)

	def getCoreDumpDirectory(self):
		if self.__CoreDumpDirectory == None: return None
		return self.__CoreDumpDirectory.getValue()

	def delCoreDumpDirectory(self):
		if self.__CoreDumpDirectory == None: return None
		child = self.__CoreDumpDirectory
		self.__CoreDumpDirectory = None
		child.unlink()

	def setDefaultType(self, value):
		if self.__DefaultType == None:
			self.__DefaultType = self.__list.addChild(Data.ADM_TYPE_STRING, "DefaultType")
		return self.__DefaultType.setValue(value)

	def getDefaultType(self):
		if self.__DefaultType == None: return None
		return self.__DefaultType.getValue()

	def delDefaultType(self):
		if self.__DefaultType == None: return None
		child = self.__DefaultType
		self.__DefaultType = None
		child.unlink()

	def setDirectoryIndex(self, value):
		if self.__DirectoryIndex == None:
			self.__DirectoryIndex = self.__list.addChild(Data.ADM_TYPE_STRING, "DirectoryIndex")
		return self.__DirectoryIndex.setValue(value)

	def getDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		return self.__DirectoryIndex.getValue()

	def delDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		child = self.__DirectoryIndex
		self.__DirectoryIndex = None
		child.unlink()

	def setDocumentRoot(self, value):
		if self.__DocumentRoot == None:
			self.__DocumentRoot = self.__list.addChild(Data.ADM_TYPE_STRING, "DocumentRoot")
		return self.__DocumentRoot.setValue(value)

	def getDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		return self.__DocumentRoot.getValue()

	def delDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		child = self.__DocumentRoot
		self.__DocumentRoot = None
		child.unlink()

	def getenvironment(self):
		return self.__environment

	def delenvironment(self):
		if self.__environment:
			child = self.__environment
			self.__environment = None
			child.unlink()

	def createenvironment(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "environment")
		self.__environment = environment(child, self)
		child.setAnonymous(1)
		return self.__environment

	def geterrordocuments(self):
		return self.__errordocuments

	def delerrordocuments(self):
		if self.__errordocuments:
			child = self.__errordocuments
			self.__errordocuments = None
			child.unlink()

	def createerrordocuments(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "errordocuments")
		self.__errordocuments = errordocuments(child, self)
		child.setAnonymous(1)
		return self.__errordocuments

	def setErrorLog(self, value):
		if self.__ErrorLog == None:
			self.__ErrorLog = self.__list.addChild(Data.ADM_TYPE_STRING, "ErrorLog")
		return self.__ErrorLog.setValue(value)

	def getErrorLog(self):
		if self.__ErrorLog == None: return None
		return self.__ErrorLog.getValue()

	def delErrorLog(self):
		if self.__ErrorLog == None: return None
		child = self.__ErrorLog
		self.__ErrorLog = None
		child.unlink()

	def setGroup(self, value):
		if self.__Group == None:
			self.__Group = self.__list.addChild(Data.ADM_TYPE_STRING, "Group")
		return self.__Group.setValue(value)

	def getGroup(self):
		if self.__Group == None: return None
		return self.__Group.getValue()

	def delGroup(self):
		if self.__Group == None: return None
		child = self.__Group
		self.__Group = None
		child.unlink()

	def setHostNameLookups(self, value):
		if self.__HostNameLookups == None:
			self.__HostNameLookups = self.__list.addChild(Data.ADM_TYPE_STRING, "HostNameLookups")
		return self.__HostNameLookups.setValue(value)

	def getHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		return self.__HostNameLookups.getValue()

	def delHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		child = self.__HostNameLookups
		self.__HostNameLookups = None
		child.unlink()

	def setIdentityCheck(self, value):
		if self.__IdentityCheck == None:
			self.__IdentityCheck = self.__list.addChild(Data.ADM_TYPE_STRING, "IdentityCheck")
		return self.__IdentityCheck.setValue(value)

	def getIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		return self.__IdentityCheck.getValue()

	def delIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		child = self.__IdentityCheck
		self.__IdentityCheck = None
		child.unlink()

	def setInclude(self, value):
		if self.__Include == None:
			self.__Include = self.__list.addChild(Data.ADM_TYPE_STRING, "Include")
		return self.__Include.setValue(value)

	def getInclude(self):
		if self.__Include == None: return None
		return self.__Include.getValue()

	def delInclude(self):
		if self.__Include == None: return None
		child = self.__Include
		self.__Include = None
		child.unlink()

	def setKeepAlive(self, value):
		if self.__KeepAlive == None:
			self.__KeepAlive = self.__list.addChild(Data.ADM_TYPE_STRING, "KeepAlive")
		return self.__KeepAlive.setValue(value)

	def getKeepAlive(self):
		if self.__KeepAlive == None: return None
		return self.__KeepAlive.getValue()

	def delKeepAlive(self):
		if self.__KeepAlive == None: return None
		child = self.__KeepAlive
		self.__KeepAlive = None
		child.unlink()

	def setKeepAliveTimeout(self, value):
		if self.__KeepAliveTimeout == None:
			self.__KeepAliveTimeout = self.__list.addChild(Data.ADM_TYPE_INT, "KeepAliveTimeout")
		return self.__KeepAliveTimeout.setValue(value)

	def getKeepAliveTimeout(self):
		if self.__KeepAliveTimeout == None: return None
		return self.__KeepAliveTimeout.getValue()

	def delKeepAliveTimeout(self):
		if self.__KeepAliveTimeout == None: return None
		child = self.__KeepAliveTimeout
		self.__KeepAliveTimeout = None
		child.unlink()

	def setLimitRequestBody(self, value):
		if self.__LimitRequestBody == None:
			self.__LimitRequestBody = self.__list.addChild(Data.ADM_TYPE_INT, "LimitRequestBody")
		return self.__LimitRequestBody.setValue(value)

	def getLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		return self.__LimitRequestBody.getValue()

	def delLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		child = self.__LimitRequestBody
		self.__LimitRequestBody = None
		child.unlink()

	def setLimitRequestFields(self, value):
		if self.__LimitRequestFields == None:
			self.__LimitRequestFields = self.__list.addChild(Data.ADM_TYPE_INT, "LimitRequestFields")
		return self.__LimitRequestFields.setValue(value)

	def getLimitRequestFields(self):
		if self.__LimitRequestFields == None: return None
		return self.__LimitRequestFields.getValue()

	def delLimitRequestFields(self):
		if self.__LimitRequestFields == None: return None
		child = self.__LimitRequestFields
		self.__LimitRequestFields = None
		child.unlink()

	def setLimitRequestFieldsize(self, value):
		if self.__LimitRequestFieldsize == None:
			self.__LimitRequestFieldsize = self.__list.addChild(Data.ADM_TYPE_INT, "LimitRequestFieldsize")
		return self.__LimitRequestFieldsize.setValue(value)

	def getLimitRequestFieldsize(self):
		if self.__LimitRequestFieldsize == None: return None
		return self.__LimitRequestFieldsize.getValue()

	def delLimitRequestFieldsize(self):
		if self.__LimitRequestFieldsize == None: return None
		child = self.__LimitRequestFieldsize
		self.__LimitRequestFieldsize = None
		child.unlink()

	def setLimitRequestLine(self, value):
		if self.__LimitRequestLine == None:
			self.__LimitRequestLine = self.__list.addChild(Data.ADM_TYPE_INT, "LimitRequestLine")
		return self.__LimitRequestLine.setValue(value)

	def getLimitRequestLine(self):
		if self.__LimitRequestLine == None: return None
		return self.__LimitRequestLine.getValue()

	def delLimitRequestLine(self):
		if self.__LimitRequestLine == None: return None
		child = self.__LimitRequestLine
		self.__LimitRequestLine = None
		child.unlink()

	def getlistener(self):
		return self.__listener

	def dellistener(self):
		if self.__listener:
			child = self.__listener
			self.__listener = None
			child.unlink()

	def createlistener(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "listener")
		self.__listener = listener(child, self)
		child.setAnonymous(1)
		return self.__listener

	def setListenBacklog(self, value):
		if self.__ListenBacklog == None:
			self.__ListenBacklog = self.__list.addChild(Data.ADM_TYPE_INT, "ListenBacklog")
		return self.__ListenBacklog.setValue(value)

	def getListenBacklog(self):
		if self.__ListenBacklog == None: return None
		return self.__ListenBacklog.getValue()

	def delListenBacklog(self):
		if self.__ListenBacklog == None: return None
		child = self.__ListenBacklog
		self.__ListenBacklog = None
		child.unlink()

	def setLockFile(self, value):
		if self.__LockFile == None:
			self.__LockFile = self.__list.addChild(Data.ADM_TYPE_STRING, "LockFile")
		return self.__LockFile.setValue(value)

	def getLockFile(self):
		if self.__LockFile == None: return None
		return self.__LockFile.getValue()

	def delLockFile(self):
		if self.__LockFile == None: return None
		child = self.__LockFile
		self.__LockFile = None
		child.unlink()

	def setLogFormat(self, value):
		if self.__LogFormat == None:
			self.__LogFormat = self.__list.addChild(Data.ADM_TYPE_STRING, "LogFormat")
		return self.__LogFormat.setValue(value)

	def getLogFormat(self):
		if self.__LogFormat == None: return None
		return self.__LogFormat.getValue()

	def delLogFormat(self):
		if self.__LogFormat == None: return None
		child = self.__LogFormat
		self.__LogFormat = None
		child.unlink()

	def setLogLevel(self, value):
		if self.__LogLevel == None:
			self.__LogLevel = self.__list.addChild(Data.ADM_TYPE_STRING, "LogLevel")
		return self.__LogLevel.setValue(value)

	def getLogLevel(self):
		if self.__LogLevel == None: return None
		return self.__LogLevel.getValue()

	def delLogLevel(self):
		if self.__LogLevel == None: return None
		child = self.__LogLevel
		self.__LogLevel = None
		child.unlink()

	def setMaxClients(self, value):
		if self.__MaxClients == None:
			self.__MaxClients = self.__list.addChild(Data.ADM_TYPE_INT, "MaxClients")
		return self.__MaxClients.setValue(value)

	def getMaxClients(self):
		if self.__MaxClients == None: return None
		return self.__MaxClients.getValue()

	def delMaxClients(self):
		if self.__MaxClients == None: return None
		child = self.__MaxClients
		self.__MaxClients = None
		child.unlink()

	def setMaxKeepAliveRequests(self, value):
		if self.__MaxKeepAliveRequests == None:
			self.__MaxKeepAliveRequests = self.__list.addChild(Data.ADM_TYPE_INT, "MaxKeepAliveRequests")
		return self.__MaxKeepAliveRequests.setValue(value)

	def getMaxKeepAliveRequests(self):
		if self.__MaxKeepAliveRequests == None: return None
		return self.__MaxKeepAliveRequests.getValue()

	def delMaxKeepAliveRequests(self):
		if self.__MaxKeepAliveRequests == None: return None
		child = self.__MaxKeepAliveRequests
		self.__MaxKeepAliveRequests = None
		child.unlink()

	def setMaxRequestsPerChild(self, value):
		if self.__MaxRequestsPerChild == None:
			self.__MaxRequestsPerChild = self.__list.addChild(Data.ADM_TYPE_INT, "MaxRequestsPerChild")
		return self.__MaxRequestsPerChild.setValue(value)

	def getMaxRequestsPerChild(self):
		if self.__MaxRequestsPerChild == None: return None
		return self.__MaxRequestsPerChild.getValue()

	def delMaxRequestsPerChild(self):
		if self.__MaxRequestsPerChild == None: return None
		child = self.__MaxRequestsPerChild
		self.__MaxRequestsPerChild = None
		child.unlink()

	def setMaxSpareServers(self, value):
		if self.__MaxSpareServers == None:
			self.__MaxSpareServers = self.__list.addChild(Data.ADM_TYPE_INT, "MaxSpareServers")
		return self.__MaxSpareServers.setValue(value)

	def getMaxSpareServers(self):
		if self.__MaxSpareServers == None: return None
		return self.__MaxSpareServers.getValue()

	def delMaxSpareServers(self):
		if self.__MaxSpareServers == None: return None
		child = self.__MaxSpareServers
		self.__MaxSpareServers = None
		child.unlink()

	def setMinSpareServers(self, value):
		if self.__MinSpareServers == None:
			self.__MinSpareServers = self.__list.addChild(Data.ADM_TYPE_INT, "MinSpareServers")
		return self.__MinSpareServers.setValue(value)

	def getMinSpareServers(self):
		if self.__MinSpareServers == None: return None
		return self.__MinSpareServers.getValue()

	def delMinSpareServers(self):
		if self.__MinSpareServers == None: return None
		child = self.__MinSpareServers
		self.__MinSpareServers = None
		child.unlink()

	def getnamevirtualhosts(self):
		return self.__namevirtualhosts

	def delnamevirtualhosts(self):
		if self.__namevirtualhosts:
			child = self.__namevirtualhosts
			self.__namevirtualhosts = None
			child.unlink()

	def createnamevirtualhosts(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "namevirtualhosts")
		self.__namevirtualhosts = namevirtualhosts(child, self)
		child.setAnonymous(1)
		return self.__namevirtualhosts

	def setOptions(self, value):
		if self.__Options == None:
			self.__Options = self.__list.addChild(Data.ADM_TYPE_STRING, "Options")
		return self.__Options.setValue(value)

	def getOptions(self):
		if self.__Options == None: return None
		return self.__Options.getValue()

	def delOptions(self):
		if self.__Options == None: return None
		child = self.__Options
		self.__Options = None
		child.unlink()

	def setPidFile(self, value):
		if self.__PidFile == None:
			self.__PidFile = self.__list.addChild(Data.ADM_TYPE_STRING, "PidFile")
		return self.__PidFile.setValue(value)

	def getPidFile(self):
		if self.__PidFile == None: return None
		return self.__PidFile.getValue()

	def delPidFile(self):
		if self.__PidFile == None: return None
		child = self.__PidFile
		self.__PidFile = None
		child.unlink()

	def setPort(self, value):
		if self.__Port == None:
			self.__Port = self.__list.addChild(Data.ADM_TYPE_INT, "Port")
		return self.__Port.setValue(value)

	def getPort(self):
		if self.__Port == None: return None
		return self.__Port.getValue()

	def delPort(self):
		if self.__Port == None: return None
		child = self.__Port
		self.__Port = None
		child.unlink()

	def setResourceConfig(self, value):
		if self.__ResourceConfig == None:
			self.__ResourceConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "ResourceConfig")
		return self.__ResourceConfig.setValue(value)

	def getResourceConfig(self):
		if self.__ResourceConfig == None: return None
		return self.__ResourceConfig.getValue()

	def delResourceConfig(self):
		if self.__ResourceConfig == None: return None
		child = self.__ResourceConfig
		self.__ResourceConfig = None
		child.unlink()

	def setRLimitCPU(self, value):
		if self.__RLimitCPU == None:
			self.__RLimitCPU = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitCPU")
		return self.__RLimitCPU.setValue(value)

	def getRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		return self.__RLimitCPU.getValue()

	def delRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		child = self.__RLimitCPU
		self.__RLimitCPU = None
		child.unlink()

	def setRLimitMEM(self, value):
		if self.__RLimitMEM == None:
			self.__RLimitMEM = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitMEM")
		return self.__RLimitMEM.setValue(value)

	def getRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		return self.__RLimitMEM.getValue()

	def delRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		child = self.__RLimitMEM
		self.__RLimitMEM = None
		child.unlink()

	def setRLimitNPROC(self, value):
		if self.__RLimitNPROC == None:
			self.__RLimitNPROC = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitNPROC")
		return self.__RLimitNPROC.setValue(value)

	def getRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		return self.__RLimitNPROC.getValue()

	def delRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		child = self.__RLimitNPROC
		self.__RLimitNPROC = None
		child.unlink()

	def setSatisfy(self, value):
		if self.__Satisfy == None:
			self.__Satisfy = self.__list.addChild(Data.ADM_TYPE_STRING, "Satisfy")
		return self.__Satisfy.setValue(value)

	def getSatisfy(self):
		if self.__Satisfy == None: return None
		return self.__Satisfy.getValue()

	def delSatisfy(self):
		if self.__Satisfy == None: return None
		child = self.__Satisfy
		self.__Satisfy = None
		child.unlink()

	def setScoreBoardFile(self, value):
		if self.__ScoreBoardFile == None:
			self.__ScoreBoardFile = self.__list.addChild(Data.ADM_TYPE_STRING, "ScoreBoardFile")
		return self.__ScoreBoardFile.setValue(value)

	def getScoreBoardFile(self):
		if self.__ScoreBoardFile == None: return None
		return self.__ScoreBoardFile.getValue()

	def delScoreBoardFile(self):
		if self.__ScoreBoardFile == None: return None
		child = self.__ScoreBoardFile
		self.__ScoreBoardFile = None
		child.unlink()

	def setSendBufferSize(self, value):
		if self.__SendBufferSize == None:
			self.__SendBufferSize = self.__list.addChild(Data.ADM_TYPE_INT, "SendBufferSize")
		return self.__SendBufferSize.setValue(value)

	def getSendBufferSize(self):
		if self.__SendBufferSize == None: return None
		return self.__SendBufferSize.getValue()

	def delSendBufferSize(self):
		if self.__SendBufferSize == None: return None
		child = self.__SendBufferSize
		self.__SendBufferSize = None
		child.unlink()

	def setServerAdmin(self, value):
		if self.__ServerAdmin == None:
			self.__ServerAdmin = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAdmin")
		return self.__ServerAdmin.setValue(value)

	def getServerAdmin(self):
		if self.__ServerAdmin == None: return None
		return self.__ServerAdmin.getValue()

	def delServerAdmin(self):
		if self.__ServerAdmin == None: return None
		child = self.__ServerAdmin
		self.__ServerAdmin = None
		child.unlink()

	def setServerName(self, value):
		if self.__ServerName == None:
			self.__ServerName = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerName")
		return self.__ServerName.setValue(value)

	def getServerName(self):
		if self.__ServerName == None: return None
		return self.__ServerName.getValue()

	def delServerName(self):
		if self.__ServerName == None: return None
		child = self.__ServerName
		self.__ServerName = None
		child.unlink()

	def setServerRoot(self, value):
		if self.__ServerRoot == None:
			self.__ServerRoot = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerRoot")
		return self.__ServerRoot.setValue(value)

	def getServerRoot(self):
		if self.__ServerRoot == None: return None
		return self.__ServerRoot.getValue()

	def delServerRoot(self):
		if self.__ServerRoot == None: return None
		child = self.__ServerRoot
		self.__ServerRoot = None
		child.unlink()

	def setServerSignature(self, value):
		if self.__ServerSignature == None:
			self.__ServerSignature = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerSignature")
		return self.__ServerSignature.setValue(value)

	def getServerSignature(self):
		if self.__ServerSignature == None: return None
		return self.__ServerSignature.getValue()

	def delServerSignature(self):
		if self.__ServerSignature == None: return None
		child = self.__ServerSignature
		self.__ServerSignature = None
		child.unlink()

	def setServerTokens(self, value):
		if self.__ServerTokens == None:
			self.__ServerTokens = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerTokens")
		return self.__ServerTokens.setValue(value)

	def getServerTokens(self):
		if self.__ServerTokens == None: return None
		return self.__ServerTokens.getValue()

	def delServerTokens(self):
		if self.__ServerTokens == None: return None
		child = self.__ServerTokens
		self.__ServerTokens = None
		child.unlink()

	def setServerType(self, value):
		if self.__ServerType == None:
			self.__ServerType = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerType")
		return self.__ServerType.setValue(value)

	def getServerType(self):
		if self.__ServerType == None: return None
		return self.__ServerType.getValue()

	def delServerType(self):
		if self.__ServerType == None: return None
		child = self.__ServerType
		self.__ServerType = None
		child.unlink()

	def setSSLMutex(self, value):
		if self.__SSLMutex == None:
			self.__SSLMutex = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLMutex")
		return self.__SSLMutex.setValue(value)

	def getSSLMutex(self):
		if self.__SSLMutex == None: return None
		return self.__SSLMutex.getValue()

	def delSSLMutex(self):
		if self.__SSLMutex == None: return None
		child = self.__SSLMutex
		self.__SSLMutex = None
		child.unlink()

	def setSSLPassPhraseDialog(self, value):
		if self.__SSLPassPhraseDialog == None:
			self.__SSLPassPhraseDialog = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLPassPhraseDialog")
		return self.__SSLPassPhraseDialog.setValue(value)

	def getSSLPassPhraseDialog(self):
		if self.__SSLPassPhraseDialog == None: return None
		return self.__SSLPassPhraseDialog.getValue()

	def delSSLPassPhraseDialog(self):
		if self.__SSLPassPhraseDialog == None: return None
		child = self.__SSLPassPhraseDialog
		self.__SSLPassPhraseDialog = None
		child.unlink()

	def setSSLRandomSeedStartup(self, value):
		if self.__SSLRandomSeedStartup == None:
			self.__SSLRandomSeedStartup = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLRandomSeedStartup")
		return self.__SSLRandomSeedStartup.setValue(value)

	def getSSLRandomSeedStartup(self):
		if self.__SSLRandomSeedStartup == None: return None
		return self.__SSLRandomSeedStartup.getValue()

	def delSSLRandomSeedStartup(self):
		if self.__SSLRandomSeedStartup == None: return None
		child = self.__SSLRandomSeedStartup
		self.__SSLRandomSeedStartup = None
		child.unlink()

	def setSSLRandomSeedConnect(self, value):
		if self.__SSLRandomSeedConnect == None:
			self.__SSLRandomSeedConnect = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLRandomSeedConnect")
		return self.__SSLRandomSeedConnect.setValue(value)

	def getSSLRandomSeedConnect(self):
		if self.__SSLRandomSeedConnect == None: return None
		return self.__SSLRandomSeedConnect.getValue()

	def delSSLRandomSeedConnect(self):
		if self.__SSLRandomSeedConnect == None: return None
		child = self.__SSLRandomSeedConnect
		self.__SSLRandomSeedConnect = None
		child.unlink()

	def setSSLSessionCache(self, value):
		if self.__SSLSessionCache == None:
			self.__SSLSessionCache = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLSessionCache")
		return self.__SSLSessionCache.setValue(value)

	def getSSLSessionCache(self):
		if self.__SSLSessionCache == None: return None
		return self.__SSLSessionCache.getValue()

	def delSSLSessionCache(self):
		if self.__SSLSessionCache == None: return None
		child = self.__SSLSessionCache
		self.__SSLSessionCache = None
		child.unlink()

	def setSSLSessionCacheTimeout(self, value):
		if self.__SSLSessionCacheTimeout == None:
			self.__SSLSessionCacheTimeout = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLSessionCacheTimeout")
		return self.__SSLSessionCacheTimeout.setValue(value)

	def getSSLSessionCacheTimeout(self):
		if self.__SSLSessionCacheTimeout == None: return None
		return self.__SSLSessionCacheTimeout.getValue()

	def delSSLSessionCacheTimeout(self):
		if self.__SSLSessionCacheTimeout == None: return None
		child = self.__SSLSessionCacheTimeout
		self.__SSLSessionCacheTimeout = None
		child.unlink()

	def setStartServers(self, value):
		if self.__StartServers == None:
			self.__StartServers = self.__list.addChild(Data.ADM_TYPE_INT, "StartServers")
		return self.__StartServers.setValue(value)

	def getStartServers(self):
		if self.__StartServers == None: return None
		return self.__StartServers.getValue()

	def delStartServers(self):
		if self.__StartServers == None: return None
		child = self.__StartServers
		self.__StartServers = None
		child.unlink()

	def setThreadsPerChild(self, value):
		if self.__ThreadsPerChild == None:
			self.__ThreadsPerChild = self.__list.addChild(Data.ADM_TYPE_INT, "ThreadsPerChild")
		return self.__ThreadsPerChild.setValue(value)

	def getThreadsPerChild(self):
		if self.__ThreadsPerChild == None: return None
		return self.__ThreadsPerChild.getValue()

	def delThreadsPerChild(self):
		if self.__ThreadsPerChild == None: return None
		child = self.__ThreadsPerChild
		self.__ThreadsPerChild = None
		child.unlink()

	def setThreadStackSize(self, value):
		if self.__ThreadStackSize == None:
			self.__ThreadStackSize = self.__list.addChild(Data.ADM_TYPE_INT, "ThreadStackSize")
		return self.__ThreadStackSize.setValue(value)

	def getThreadStackSize(self):
		if self.__ThreadStackSize == None: return None
		return self.__ThreadStackSize.getValue()

	def delThreadStackSize(self):
		if self.__ThreadStackSize == None: return None
		child = self.__ThreadStackSize
		self.__ThreadStackSize = None
		child.unlink()

	def setTimeOut(self, value):
		if self.__TimeOut == None:
			self.__TimeOut = self.__list.addChild(Data.ADM_TYPE_INT, "TimeOut")
		return self.__TimeOut.setValue(value)

	def getTimeOut(self):
		if self.__TimeOut == None: return None
		return self.__TimeOut.getValue()

	def delTimeOut(self):
		if self.__TimeOut == None: return None
		child = self.__TimeOut
		self.__TimeOut = None
		child.unlink()

	def setTransferLog(self, value):
		if self.__TransferLog == None:
			self.__TransferLog = self.__list.addChild(Data.ADM_TYPE_STRING, "TransferLog")
		return self.__TransferLog.setValue(value)

	def getTransferLog(self):
		if self.__TransferLog == None: return None
		return self.__TransferLog.getValue()

	def delTransferLog(self):
		if self.__TransferLog == None: return None
		child = self.__TransferLog
		self.__TransferLog = None
		child.unlink()

	def setUseCanonicalName(self, value):
		if self.__UseCanonicalName == None:
			self.__UseCanonicalName = self.__list.addChild(Data.ADM_TYPE_STRING, "UseCanonicalName")
		return self.__UseCanonicalName.setValue(value)

	def getUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		return self.__UseCanonicalName.getValue()

	def delUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		child = self.__UseCanonicalName
		self.__UseCanonicalName = None
		child.unlink()

	def setUser(self, value):
		if self.__User == None:
			self.__User = self.__list.addChild(Data.ADM_TYPE_STRING, "User")
		return self.__User.setValue(value)

	def getUser(self):
		if self.__User == None: return None
		return self.__User.getValue()

	def delUser(self):
		if self.__User == None: return None
		child = self.__User
		self.__User = None
		child.unlink()


class directory:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("AddDefaultCharset")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AddDefaultCharset = child
		except (KeyError): self.__AddDefaultCharset = None

		child = None
		try:
			child = list.getChildByName("AllowOverride")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AllowOverride = child
		except (KeyError): self.__AllowOverride = None

		child = None
		try:
			child = list.getChildByName("Allow")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Allow = child
		except (KeyError): self.__Allow = None

		child = None
		try:
			child = list.getChildByName("AuthName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AuthName = child
		except (KeyError): self.__AuthName = None

		child = None
		try:
			child = list.getChildByName("AuthType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AuthType = child
		except (KeyError): self.__AuthType = None

		child = None
		try:
			child = list.getChildByName("ContentDigest")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ContentDigest = child
		except (KeyError): self.__ContentDigest = None

		child = None
		try:
			child = list.getChildByName("DefaultType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DefaultType = child
		except (KeyError): self.__DefaultType = None

		child = None
		try:
			child = list.getChildByName("Deny")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Deny = child
		except (KeyError): self.__Deny = None

		child = None
		try:
			child = list.getChildByName("Dir")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Dir = child
		except (KeyError): self.__Dir = None

		child = None
		try:
			child = list.getChildByName("ErrorDocument")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ErrorDocument = child
		except (KeyError): self.__ErrorDocument = None

		child = None
		try:
			child = list.getChildByName("HostNameLookups")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__HostNameLookups = child
		except (KeyError): self.__HostNameLookups = None

		child = None
		try:
			child = list.getChildByName("IdentityCheck")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__IdentityCheck = child
		except (KeyError): self.__IdentityCheck = None

		child = None
		try:
			child = list.getChildByName("LimitRequestBody")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LimitRequestBody = child
		except (KeyError): self.__LimitRequestBody = None

		child = None
		try:
			child = list.getChildByName("Options")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Options = child
		except (KeyError): self.__Options = None

		child = None
		try:
			child = list.getChildByName("Order")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Order = child
		except (KeyError): self.__Order = None

		child = None
		try:
			child = list.getChildByName("Require")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Require = child
		except (KeyError): self.__Require = None

		child = None
		try:
			child = list.getChildByName("ScriptInterpreterSource")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ScriptInterpreterSource = child
		except (KeyError): self.__ScriptInterpreterSource = None

		child = None
		try:
			child = list.getChildByName("ServerSignature")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerSignature = child
		except (KeyError): self.__ServerSignature = None

		child = None
		try:
			child = list.getChildByName("UseCanonicalName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__UseCanonicalName = child
		except (KeyError): self.__UseCanonicalName = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		return self.__list.unlink()

	def setAddDefaultCharset(self, value):
		if self.__AddDefaultCharset == None:
			self.__AddDefaultCharset = self.__list.addChild(Data.ADM_TYPE_STRING, "AddDefaultCharset")
		return self.__AddDefaultCharset.setValue(value)

	def getAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		return self.__AddDefaultCharset.getValue()

	def delAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		child = self.__AddDefaultCharset
		self.__AddDefaultCharset = None
		child.unlink()

	def setAllowOverride(self, value):
		if self.__AllowOverride == None:
			self.__AllowOverride = self.__list.addChild(Data.ADM_TYPE_STRING, "AllowOverride")
		return self.__AllowOverride.setValue(value)

	def getAllowOverride(self):
		if self.__AllowOverride == None: return None
		return self.__AllowOverride.getValue()

	def delAllowOverride(self):
		if self.__AllowOverride == None: return None
		child = self.__AllowOverride
		self.__AllowOverride = None
		child.unlink()

	def setAllow(self, value):
		if self.__Allow == None:
			self.__Allow = self.__list.addChild(Data.ADM_TYPE_STRING, "Allow")
		return self.__Allow.setValue(value)

	def getAllow(self):
		if self.__Allow == None: return None
		return self.__Allow.getValue()

	def delAllow(self):
		if self.__Allow == None: return None
		child = self.__Allow
		self.__Allow = None
		child.unlink()

	def setAuthName(self, value):
		if self.__AuthName == None:
			self.__AuthName = self.__list.addChild(Data.ADM_TYPE_STRING, "AuthName")
		return self.__AuthName.setValue(value)

	def getAuthName(self):
		if self.__AuthName == None: return None
		return self.__AuthName.getValue()

	def delAuthName(self):
		if self.__AuthName == None: return None
		child = self.__AuthName
		self.__AuthName = None
		child.unlink()

	def setAuthType(self, value):
		if self.__AuthType == None:
			self.__AuthType = self.__list.addChild(Data.ADM_TYPE_STRING, "AuthType")
		return self.__AuthType.setValue(value)

	def getAuthType(self):
		if self.__AuthType == None: return None
		return self.__AuthType.getValue()

	def delAuthType(self):
		if self.__AuthType == None: return None
		child = self.__AuthType
		self.__AuthType = None
		child.unlink()

	def setContentDigest(self, value):
		if self.__ContentDigest == None:
			self.__ContentDigest = self.__list.addChild(Data.ADM_TYPE_STRING, "ContentDigest")
		return self.__ContentDigest.setValue(value)

	def getContentDigest(self):
		if self.__ContentDigest == None: return None
		return self.__ContentDigest.getValue()

	def delContentDigest(self):
		if self.__ContentDigest == None: return None
		child = self.__ContentDigest
		self.__ContentDigest = None
		child.unlink()

	def setDefaultType(self, value):
		if self.__DefaultType == None:
			self.__DefaultType = self.__list.addChild(Data.ADM_TYPE_STRING, "DefaultType")
		return self.__DefaultType.setValue(value)

	def getDefaultType(self):
		if self.__DefaultType == None: return None
		return self.__DefaultType.getValue()

	def delDefaultType(self):
		if self.__DefaultType == None: return None
		child = self.__DefaultType
		self.__DefaultType = None
		child.unlink()

	def setDeny(self, value):
		if self.__Deny == None:
			self.__Deny = self.__list.addChild(Data.ADM_TYPE_STRING, "Deny")
		return self.__Deny.setValue(value)

	def getDeny(self):
		if self.__Deny == None: return None
		return self.__Deny.getValue()

	def delDeny(self):
		if self.__Deny == None: return None
		child = self.__Deny
		self.__Deny = None
		child.unlink()

	def setDir(self, value):
		if self.__Dir == None:
			self.__Dir = self.__list.addChild(Data.ADM_TYPE_STRING, "Dir")
		return self.__Dir.setValue(value)

	def getDir(self):
		if self.__Dir == None: return None
		return self.__Dir.getValue()

	def delDir(self):
		if self.__Dir == None: return None
		child = self.__Dir
		self.__Dir = None
		child.unlink()

	def setErrorDocument(self, value):
		if self.__ErrorDocument == None:
			self.__ErrorDocument = self.__list.addChild(Data.ADM_TYPE_STRING, "ErrorDocument")
		return self.__ErrorDocument.setValue(value)

	def getErrorDocument(self):
		if self.__ErrorDocument == None: return None
		return self.__ErrorDocument.getValue()

	def delErrorDocument(self):
		if self.__ErrorDocument == None: return None
		child = self.__ErrorDocument
		self.__ErrorDocument = None
		child.unlink()

	def setHostNameLookups(self, value):
		if self.__HostNameLookups == None:
			self.__HostNameLookups = self.__list.addChild(Data.ADM_TYPE_STRING, "HostNameLookups")
		return self.__HostNameLookups.setValue(value)

	def getHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		return self.__HostNameLookups.getValue()

	def delHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		child = self.__HostNameLookups
		self.__HostNameLookups = None
		child.unlink()

	def setIdentityCheck(self, value):
		if self.__IdentityCheck == None:
			self.__IdentityCheck = self.__list.addChild(Data.ADM_TYPE_STRING, "IdentityCheck")
		return self.__IdentityCheck.setValue(value)

	def getIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		return self.__IdentityCheck.getValue()

	def delIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		child = self.__IdentityCheck
		self.__IdentityCheck = None
		child.unlink()

	def setLimitRequestBody(self, value):
		if self.__LimitRequestBody == None:
			self.__LimitRequestBody = self.__list.addChild(Data.ADM_TYPE_STRING, "LimitRequestBody")
		return self.__LimitRequestBody.setValue(value)

	def getLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		return self.__LimitRequestBody.getValue()

	def delLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		child = self.__LimitRequestBody
		self.__LimitRequestBody = None
		child.unlink()

	def setOptions(self, value):
		if self.__Options == None:
			self.__Options = self.__list.addChild(Data.ADM_TYPE_STRING, "Options")
		return self.__Options.setValue(value)

	def getOptions(self):
		if self.__Options == None: return None
		return self.__Options.getValue()

	def delOptions(self):
		if self.__Options == None: return None
		child = self.__Options
		self.__Options = None
		child.unlink()

	def setOrder(self, value):
		if self.__Order == None:
			self.__Order = self.__list.addChild(Data.ADM_TYPE_STRING, "Order")
		return self.__Order.setValue(value)

	def getOrder(self):
		if self.__Order == None: return None
		return self.__Order.getValue()

	def delOrder(self):
		if self.__Order == None: return None
		child = self.__Order
		self.__Order = None
		child.unlink()

	def setRequire(self, value):
		if self.__Require == None:
			self.__Require = self.__list.addChild(Data.ADM_TYPE_STRING, "Require")
		return self.__Require.setValue(value)

	def getRequire(self):
		if self.__Require == None: return None
		return self.__Require.getValue()

	def delRequire(self):
		if self.__Require == None: return None
		child = self.__Require
		self.__Require = None
		child.unlink()

	def setScriptInterpreterSource(self, value):
		if self.__ScriptInterpreterSource == None:
			self.__ScriptInterpreterSource = self.__list.addChild(Data.ADM_TYPE_STRING, "ScriptInterpreterSource")
		return self.__ScriptInterpreterSource.setValue(value)

	def getScriptInterpreterSource(self):
		if self.__ScriptInterpreterSource == None: return None
		return self.__ScriptInterpreterSource.getValue()

	def delScriptInterpreterSource(self):
		if self.__ScriptInterpreterSource == None: return None
		child = self.__ScriptInterpreterSource
		self.__ScriptInterpreterSource = None
		child.unlink()

	def setServerSignature(self, value):
		if self.__ServerSignature == None:
			self.__ServerSignature = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerSignature")
		return self.__ServerSignature.setValue(value)

	def getServerSignature(self):
		if self.__ServerSignature == None: return None
		return self.__ServerSignature.getValue()

	def delServerSignature(self):
		if self.__ServerSignature == None: return None
		child = self.__ServerSignature
		self.__ServerSignature = None
		child.unlink()

	def setUseCanonicalName(self, value):
		if self.__UseCanonicalName == None:
			self.__UseCanonicalName = self.__list.addChild(Data.ADM_TYPE_STRING, "UseCanonicalName")
		return self.__UseCanonicalName.setValue(value)

	def getUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		return self.__UseCanonicalName.getValue()

	def delUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		child = self.__UseCanonicalName
		self.__UseCanonicalName = None
		child.unlink()


class directories:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().deldirectories()

	def getdirectory(self, pos):
		return directory(self.__list.getChildByIndex(pos), self)

	def deldirectory(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def adddirectory(self):
		return directory(self.__list.addChild(Data.ADM_TYPE_LIST, "directory"), self)

	def getNumdirectory(self):
		return self.__list.getNumChildren()

	def movedirectory(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)


class serveraliases:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delserveraliases()

	def setServerAlias(self, pos, value):
		child = self.__list.getChildByIndex(pos)
		return child.setValue(value)

	def getServerAlias(self, pos):
		return self.__list.getChildByIndex(pos).getValue()

	def delServerAlias(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def addServerAlias(self):
		self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAlias")
		return (self.__list.getNumChildren() - 1)

	def getNumServerAlias(self):
		return self.__list.getNumChildren()

	def moveServerAlias(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)

class vhostdefault:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("directories")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__directories = directories(child, self)
		except (KeyError): self.__directories = None

		child = None
		try:
			child = list.getChildByName("AccessConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessConfig = child
		except (KeyError): self.__AccessConfig = None

		child = None
		try:
			child = list.getChildByName("AccessFileName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessFileName = child
		except (KeyError): self.__AccessFileName = None

		child = None
		try:
			child = list.getChildByName("AddDefaultCharset")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AddDefaultCharset = child
		except (KeyError): self.__AddDefaultCharset = None

		child = None
		try:
			child = list.getChildByName("Address")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Address = child
		except (KeyError): self.__Address = None

		child = None
		try:
			child = list.getChildByName("ContentDigest")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ContentDigest = child
		except (KeyError): self.__ContentDigest = None

		child = None
		try:
			child = list.getChildByName("DefaultType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DefaultType = child
		except (KeyError): self.__DefaultType = None

		child = None
		try:
			child = list.getChildByName("DirectoryIndex")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DirectoryIndex = child
		except (KeyError): self.__DirectoryIndex = None

		child = None
		try:
			child = list.getChildByName("DocumentRoot")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DocumentRoot = child
		except (KeyError): self.__DocumentRoot = None

		child = None
		try:
			child = list.getChildByName("environment")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__environment = environment(child, self)
		except (KeyError): self.__environment = None

		child = None
		try:
			child = list.getChildByName("errordocuments")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__errordocuments = errordocuments(child, self)
		except (KeyError): self.__errordocuments = None

		child = None
		try:
			child = list.getChildByName("ErrorLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ErrorLog = child
		except (KeyError): self.__ErrorLog = None

		child = None
		try:
			child = list.getChildByName("Group")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Group = child
		except (KeyError): self.__Group = None

		child = None
		try:
			child = list.getChildByName("HostNameLookups")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__HostNameLookups = child
		except (KeyError): self.__HostNameLookups = None

		child = None
		try:
			child = list.getChildByName("IdentityCheck")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__IdentityCheck = child
		except (KeyError): self.__IdentityCheck = None

		child = None
		try:
			child = list.getChildByName("LimitRequestBody")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LimitRequestBody = child
		except (KeyError): self.__LimitRequestBody = None

		child = None
		try:
			child = list.getChildByName("LogFormat")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogFormat = child
		except (KeyError): self.__LogFormat = None

		child = None
		try:
			child = list.getChildByName("LogLevel")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogLevel = child
		except (KeyError): self.__LogLevel = None

		child = None
		try:
			child = list.getChildByName("NameBased")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__NameBased = child
		except (KeyError): self.__NameBased = None

		child = None
		try:
			child = list.getChildByName("Options")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Options = child
		except (KeyError): self.__Options = None

		child = None
		try:
			child = list.getChildByName("ResourceConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ResourceConfig = child
		except (KeyError): self.__ResourceConfig = None

		child = None
		try:
			child = list.getChildByName("RLimitCPU")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitCPU = child
		except (KeyError): self.__RLimitCPU = None

		child = None
		try:
			child = list.getChildByName("RLimitMEM")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitMEM = child
		except (KeyError): self.__RLimitMEM = None

		child = None
		try:
			child = list.getChildByName("RLimitNPROC")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitNPROC = child
		except (KeyError): self.__RLimitNPROC = None

		child = None
		try:
			child = list.getChildByName("Satisfy")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Satisfy = child
		except (KeyError): self.__Satisfy = None

		child = None
		try:
			child = list.getChildByName("ServerAdmin")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerAdmin = child
		except (KeyError): self.__ServerAdmin = None

		child = None
		try:
			child = list.getChildByName("serveraliases")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__serveraliases = serveraliases(child, self)
		except (KeyError): self.__serveraliases = None

		child = None
		try:
			child = list.getChildByName("ServerAlias")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerAlias = child
		except (KeyError): self.__ServerAlias = None

		child = None
		try:
			child = list.getChildByName("ServerName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerName = child
		except (KeyError): self.__ServerName = None

		child = None
		try:
			child = list.getChildByName("ServerPath")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerPath = child
		except (KeyError): self.__ServerPath = None

		child = None
		try:
			child = list.getChildByName("ServerSignature")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerSignature = child
		except (KeyError): self.__ServerSignature = None

		child = None
		try:
			child = list.getChildByName("SSLCACertificatePath")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCACertificatePath = child
		except (KeyError): self.__SSLCACertificatePath = None

		child = None
		try:
			child = list.getChildByName("SSLCACertificateFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCACertificateFile = child
		except (KeyError): self.__SSLCACertificateFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateFile = child
		except (KeyError): self.__SSLCertificateFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateKeyFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateKeyFile = child
		except (KeyError): self.__SSLCertificateKeyFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateChainFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateChainFile = child
		except (KeyError): self.__SSLCertificateChainFile = None

		child = None
		try:
			child = list.getChildByName("SSLEngine")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLEngine = child
		except (KeyError): self.__SSLEngine = None

		child = None
		try:
			child = list.getChildByName("SSLLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLLog = child
		except (KeyError): self.__SSLLog = None

		child = None
		try:
			child = list.getChildByName("SSLLogLevel")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLLogLevel = child
		except (KeyError): self.__SSLLogLevel = None

		child = None
		try:
			child = list.getChildByName("SSLOptions")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLOptions = child
		except (KeyError): self.__SSLOptions = None

		child = None
		try:
			child = list.getChildByName("TransferLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__TransferLog = child
		except (KeyError): self.__TransferLog = None

		child = None
		try:
			child = list.getChildByName("UseCanonicalName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__UseCanonicalName = child
		except (KeyError): self.__UseCanonicalName = None

		child = None
		try:
			child = list.getChildByName("User")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__User = child
		except (KeyError): self.__User = None

		child = None
		try:
			child = list.getChildByName("VHName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__VHName = child
		except (KeyError): self.__VHName = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delvhostdefault()

	def getdirectories(self):
		return self.__directories

	def deldirectories(self):
		if self.__directories:
			child = self.__directories
			self.__directories = None
			child.unlink()

	def createdirectories(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "directories")
		self.__directories = directories(child, self)
		child.setAnonymous(1)
		return self.__directories

	def setAccessConfig(self, value):
		if self.__AccessConfig == None:
			self.__AccessConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessConfig")
		return self.__AccessConfig.setValue(value)

	def getAccessConfig(self):
		if self.__AccessConfig == None: return None
		return self.__AccessConfig.getValue()

	def delAccessConfig(self):
		if self.__AccessConfig == None: return None
		child = self.__AccessConfig
		self.__AccessConfig = None
		child.unlink()

	def setAccessFileName(self, value):
		if self.__AccessFileName == None:
			self.__AccessFileName = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessFileName")
		return self.__AccessFileName.setValue(value)

	def getAccessFileName(self):
		if self.__AccessFileName == None: return None
		return self.__AccessFileName.getValue()

	def delAccessFileName(self):
		if self.__AccessFileName == None: return None
		child = self.__AccessFileName
		self.__AccessFileName = None
		child.unlink()

	def setAddDefaultCharset(self, value):
		if self.__AddDefaultCharset == None:
			self.__AddDefaultCharset = self.__list.addChild(Data.ADM_TYPE_STRING, "AddDefaultCharset")
		return self.__AddDefaultCharset.setValue(value)

	def getAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		return self.__AddDefaultCharset.getValue()

	def delAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		child = self.__AddDefaultCharset
		self.__AddDefaultCharset = None
		child.unlink()

	def setAddress(self, value):
		if self.__Address == None:
			self.__Address = self.__list.addChild(Data.ADM_TYPE_STRING, "Address")
		return self.__Address.setValue(value)

	def getAddress(self):
		if self.__Address == None: return None
		return self.__Address.getValue()

	def delAddress(self):
		if self.__Address == None: return None
		child = self.__Address
		self.__Address = None
		child.unlink()

	def setContentDigest(self, value):
		if self.__ContentDigest == None:
			self.__ContentDigest = self.__list.addChild(Data.ADM_TYPE_STRING, "ContentDigest")
		return self.__ContentDigest.setValue(value)

	def getContentDigest(self):
		if self.__ContentDigest == None: return None
		return self.__ContentDigest.getValue()

	def delContentDigest(self):
		if self.__ContentDigest == None: return None
		child = self.__ContentDigest
		self.__ContentDigest = None
		child.unlink()

	def setDefaultType(self, value):
		if self.__DefaultType == None:
			self.__DefaultType = self.__list.addChild(Data.ADM_TYPE_STRING, "DefaultType")
		return self.__DefaultType.setValue(value)

	def getDefaultType(self):
		if self.__DefaultType == None: return None
		return self.__DefaultType.getValue()

	def delDefaultType(self):
		if self.__DefaultType == None: return None
		child = self.__DefaultType
		self.__DefaultType = None
		child.unlink()

	def setDirectoryIndex(self, value):
		if self.__DirectoryIndex == None:
			self.__DirectoryIndex = self.__list.addChild(Data.ADM_TYPE_STRING, "DirectoryIndex")
		return self.__DirectoryIndex.setValue(value)

	def getDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		return self.__DirectoryIndex.getValue()

	def delDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		child = self.__DirectoryIndex
		self.__DirectoryIndex = None
		child.unlink()

	def setDocumentRoot(self, value):
		if self.__DocumentRoot == None:
			self.__DocumentRoot = self.__list.addChild(Data.ADM_TYPE_STRING, "DocumentRoot")
		return self.__DocumentRoot.setValue(value)

	def getDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		return self.__DocumentRoot.getValue()

	def delDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		child = self.__DocumentRoot
		self.__DocumentRoot = None
		child.unlink()

	def getenvironment(self):
		return self.__environment

	def delenvironment(self):
		if self.__environment:
			child = self.__environment
			self.__environment = None
			child.unlink()

	def createenvironment(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "environment")
		self.__environment = environment(child, self)
		child.setAnonymous(1)
		return self.__environment

	def geterrordocuments(self):
		return self.__errordocuments

	def delerrordocuments(self):
		if self.__errordocuments:
			child = self.__errordocuments
			self.__errordocuments = None
			child.unlink()

	def createerrordocuments(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "errordocuments")
		self.__errordocuments = errordocuments(child, self)
		child.setAnonymous(1)
		return self.__errordocuments

	def setErrorLog(self, value):
		if self.__ErrorLog == None:
			self.__ErrorLog = self.__list.addChild(Data.ADM_TYPE_STRING, "ErrorLog")
		return self.__ErrorLog.setValue(value)

	def getErrorLog(self):
		if self.__ErrorLog == None: return None
		return self.__ErrorLog.getValue()

	def delErrorLog(self):
		if self.__ErrorLog == None: return None
		child = self.__ErrorLog
		self.__ErrorLog = None
		child.unlink()

	def setGroup(self, value):
		if self.__Group == None:
			self.__Group = self.__list.addChild(Data.ADM_TYPE_STRING, "Group")
		return self.__Group.setValue(value)

	def getGroup(self):
		if self.__Group == None: return None
		return self.__Group.getValue()

	def delGroup(self):
		if self.__Group == None: return None
		child = self.__Group
		self.__Group = None
		child.unlink()

	def setHostNameLookups(self, value):
		if self.__HostNameLookups == None:
			self.__HostNameLookups = self.__list.addChild(Data.ADM_TYPE_STRING, "HostNameLookups")
		return self.__HostNameLookups.setValue(value)

	def getHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		return self.__HostNameLookups.getValue()

	def delHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		child = self.__HostNameLookups
		self.__HostNameLookups = None
		child.unlink()

	def setIdentityCheck(self, value):
		if self.__IdentityCheck == None:
			self.__IdentityCheck = self.__list.addChild(Data.ADM_TYPE_STRING, "IdentityCheck")
		return self.__IdentityCheck.setValue(value)

	def getIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		return self.__IdentityCheck.getValue()

	def delIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		child = self.__IdentityCheck
		self.__IdentityCheck = None
		child.unlink()

	def setLimitRequestBody(self, value):
		if self.__LimitRequestBody == None:
			self.__LimitRequestBody = self.__list.addChild(Data.ADM_TYPE_STRING, "LimitRequestBody")
		return self.__LimitRequestBody.setValue(value)

	def getLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		return self.__LimitRequestBody.getValue()

	def delLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		child = self.__LimitRequestBody
		self.__LimitRequestBody = None
		child.unlink()

	def setLogFormat(self, value):
		if self.__LogFormat == None:
			self.__LogFormat = self.__list.addChild(Data.ADM_TYPE_STRING, "LogFormat")
		return self.__LogFormat.setValue(value)

	def getLogFormat(self):
		if self.__LogFormat == None: return None
		return self.__LogFormat.getValue()

	def delLogFormat(self):
		if self.__LogFormat == None: return None
		child = self.__LogFormat
		self.__LogFormat = None
		child.unlink()

	def setLogLevel(self, value):
		if self.__LogLevel == None:
			self.__LogLevel = self.__list.addChild(Data.ADM_TYPE_STRING, "LogLevel")
		return self.__LogLevel.setValue(value)

	def getLogLevel(self):
		if self.__LogLevel == None: return None
		return self.__LogLevel.getValue()

	def delLogLevel(self):
		if self.__LogLevel == None: return None
		child = self.__LogLevel
		self.__LogLevel = None
		child.unlink()

	def setNameBased(self, value):
		if self.__NameBased == None:
			self.__NameBased = self.__list.addChild(Data.ADM_TYPE_STRING, "NameBased")
		return self.__NameBased.setValue(value)

	def getNameBased(self):
		if self.__NameBased == None: return None
		return self.__NameBased.getValue()

	def delNameBased(self):
		if self.__NameBased == None: return None
		child = self.__NameBased
		self.__NameBased = None
		child.unlink()

	def setOptions(self, value):
		if self.__Options == None:
			self.__Options = self.__list.addChild(Data.ADM_TYPE_STRING, "Options")
		return self.__Options.setValue(value)

	def getOptions(self):
		if self.__Options == None: return None
		return self.__Options.getValue()

	def delOptions(self):
		if self.__Options == None: return None
		child = self.__Options
		self.__Options = None
		child.unlink()

	def setResourceConfig(self, value):
		if self.__ResourceConfig == None:
			self.__ResourceConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "ResourceConfig")
		return self.__ResourceConfig.setValue(value)

	def getResourceConfig(self):
		if self.__ResourceConfig == None: return None
		return self.__ResourceConfig.getValue()

	def delResourceConfig(self):
		if self.__ResourceConfig == None: return None
		child = self.__ResourceConfig
		self.__ResourceConfig = None
		child.unlink()

	def setRLimitCPU(self, value):
		if self.__RLimitCPU == None:
			self.__RLimitCPU = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitCPU")
		return self.__RLimitCPU.setValue(value)

	def getRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		return self.__RLimitCPU.getValue()

	def delRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		child = self.__RLimitCPU
		self.__RLimitCPU = None
		child.unlink()

	def setRLimitMEM(self, value):
		if self.__RLimitMEM == None:
			self.__RLimitMEM = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitMEM")
		return self.__RLimitMEM.setValue(value)

	def getRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		return self.__RLimitMEM.getValue()

	def delRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		child = self.__RLimitMEM
		self.__RLimitMEM = None
		child.unlink()

	def setRLimitNPROC(self, value):
		if self.__RLimitNPROC == None:
			self.__RLimitNPROC = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitNPROC")
		return self.__RLimitNPROC.setValue(value)

	def getRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		return self.__RLimitNPROC.getValue()

	def delRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		child = self.__RLimitNPROC
		self.__RLimitNPROC = None
		child.unlink()

	def setSatisfy(self, value):
		if self.__Satisfy == None:
			self.__Satisfy = self.__list.addChild(Data.ADM_TYPE_STRING, "Satisfy")
		return self.__Satisfy.setValue(value)

	def getSatisfy(self):
		if self.__Satisfy == None: return None
		return self.__Satisfy.getValue()

	def delSatisfy(self):
		if self.__Satisfy == None: return None
		child = self.__Satisfy
		self.__Satisfy = None
		child.unlink()

	def setServerAdmin(self, value):
		if self.__ServerAdmin == None:
			self.__ServerAdmin = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAdmin")
		return self.__ServerAdmin.setValue(value)

	def getServerAdmin(self):
		if self.__ServerAdmin == None: return None
		return self.__ServerAdmin.getValue()

	def delServerAdmin(self):
		if self.__ServerAdmin == None: return None
		child = self.__ServerAdmin
		self.__ServerAdmin = None
		child.unlink()

	def getserveraliases(self):
		return self.__serveraliases

	def delserveraliases(self):
		if self.__serveraliases:
			child = self.__serveraliases
			self.__serveraliases = None
			child.unlink()

	def createserveraliases(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "serveraliases")
		self.__serveraliases = serveraliases(child, self)
		child.setAnonymous(1)
		return self.__serveraliases

	def setServerAlias(self, value):
		if self.__ServerAlias == None:
			self.__ServerAlias = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAlias")
		return self.__ServerAlias.setValue(value)

	def getServerAlias(self):
		if self.__ServerAlias == None: return None
		return self.__ServerAlias.getValue()

	def delServerAlias(self):
		if self.__ServerAlias == None: return None
		child = self.__ServerAlias
		self.__ServerAlias = None
		child.unlink()

	def setServerName(self, value):
		if self.__ServerName == None:
			self.__ServerName = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerName")
		return self.__ServerName.setValue(value)

	def getServerName(self):
		if self.__ServerName == None: return None
		return self.__ServerName.getValue()

	def delServerName(self):
		if self.__ServerName == None: return None
		child = self.__ServerName
		self.__ServerName = None
		child.unlink()

	def setServerPath(self, value):
		if self.__ServerPath == None:
			self.__ServerPath = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerPath")
		return self.__ServerPath.setValue(value)

	def getServerPath(self):
		if self.__ServerPath == None: return None
		return self.__ServerPath.getValue()

	def delServerPath(self):
		if self.__ServerPath == None: return None
		child = self.__ServerPath
		self.__ServerPath = None
		child.unlink()

	def setServerSignature(self, value):
		if self.__ServerSignature == None:
			self.__ServerSignature = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerSignature")
		return self.__ServerSignature.setValue(value)

	def getServerSignature(self):
		if self.__ServerSignature == None: return None
		return self.__ServerSignature.getValue()

	def delServerSignature(self):
		if self.__ServerSignature == None: return None
		child = self.__ServerSignature
		self.__ServerSignature = None
		child.unlink()

	def setSSLCACertificatePath(self, value):
		if self.__SSLCACertificatePath == None:
			self.__SSLCACertificatePath = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCACertificatePath")
		return self.__SSLCACertificatePath.setValue(value)

	def getSSLCACertificatePath(self):
		if self.__SSLCACertificatePath == None: return None
		return self.__SSLCACertificatePath.getValue()

	def delSSLCACertificatePath(self):
		if self.__SSLCACertificatePath == None: return None
		child = self.__SSLCACertificatePath
		self.__SSLCACertificatePath = None
		child.unlink()

	def setSSLCACertificateFile(self, value):
		if self.__SSLCACertificateFile == None:
			self.__SSLCACertificateFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCACertificateFile")
		return self.__SSLCACertificateFile.setValue(value)

	def getSSLCACertificateFile(self):
		if self.__SSLCACertificateFile == None: return None
		return self.__SSLCACertificateFile.getValue()

	def delSSLCACertificateFile(self):
		if self.__SSLCACertificateFile == None: return None
		child = self.__SSLCACertificateFile
		self.__SSLCACertificateFile = None
		child.unlink()

	def setSSLCertificateFile(self, value):
		if self.__SSLCertificateFile == None:
			self.__SSLCertificateFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateFile")
		return self.__SSLCertificateFile.setValue(value)

	def getSSLCertificateFile(self):
		if self.__SSLCertificateFile == None: return None
		return self.__SSLCertificateFile.getValue()

	def delSSLCertificateFile(self):
		if self.__SSLCertificateFile == None: return None
		child = self.__SSLCertificateFile
		self.__SSLCertificateFile = None
		child.unlink()

	def setSSLCertificateKeyFile(self, value):
		if self.__SSLCertificateKeyFile == None:
			self.__SSLCertificateKeyFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateKeyFile")
		return self.__SSLCertificateKeyFile.setValue(value)

	def getSSLCertificateKeyFile(self):
		if self.__SSLCertificateKeyFile == None: return None
		return self.__SSLCertificateKeyFile.getValue()

	def delSSLCertificateKeyFile(self):
		if self.__SSLCertificateKeyFile == None: return None
		child = self.__SSLCertificateKeyFile
		self.__SSLCertificateKeyFile = None
		child.unlink()

	def setSSLCertificateChainFile(self, value):
		if self.__SSLCertificateChainFile == None:
			self.__SSLCertificateChainFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateChainFile")
		return self.__SSLCertificateChainFile.setValue(value)

	def getSSLCertificateChainFile(self):
		if self.__SSLCertificateChainFile == None: return None
		return self.__SSLCertificateChainFile.getValue()

	def delSSLCertificateChainFile(self):
		if self.__SSLCertificateChainFile == None: return None
		child = self.__SSLCertificateChainFile
		self.__SSLCertificateChainFile = None
		child.unlink()

	def setSSLEngine(self, value):
		if self.__SSLEngine == None:
			self.__SSLEngine = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLEngine")
		return self.__SSLEngine.setValue(value)

	def getSSLEngine(self):
		if self.__SSLEngine == None: return None
		return self.__SSLEngine.getValue()

	def delSSLEngine(self):
		if self.__SSLEngine == None: return None
		child = self.__SSLEngine
		self.__SSLEngine = None
		child.unlink()

	def setSSLLog(self, value):
		if self.__SSLLog == None:
			self.__SSLLog = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLLog")
		return self.__SSLLog.setValue(value)

	def getSSLLog(self):
		if self.__SSLLog == None: return None
		return self.__SSLLog.getValue()

	def delSSLLog(self):
		if self.__SSLLog == None: return None
		child = self.__SSLLog
		self.__SSLLog = None
		child.unlink()

	def setSSLLogLevel(self, value):
		if self.__SSLLogLevel == None:
			self.__SSLLogLevel = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLLogLevel")
		return self.__SSLLogLevel.setValue(value)

	def getSSLLogLevel(self):
		if self.__SSLLogLevel == None: return None
		return self.__SSLLogLevel.getValue()

	def delSSLLogLevel(self):
		if self.__SSLLogLevel == None: return None
		child = self.__SSLLogLevel
		self.__SSLLogLevel = None
		child.unlink()

	def setSSLOptions(self, value):
		if self.__SSLOptions == None:
			self.__SSLOptions = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLOptions")
		return self.__SSLOptions.setValue(value)

	def getSSLOptions(self):
		if self.__SSLOptions == None: return None
		return self.__SSLOptions.getValue()

	def delSSLOptions(self):
		if self.__SSLOptions == None: return None
		child = self.__SSLOptions
		self.__SSLOptions = None
		child.unlink()

	def setTransferLog(self, value):
		if self.__TransferLog == None:
			self.__TransferLog = self.__list.addChild(Data.ADM_TYPE_STRING, "TransferLog")
		return self.__TransferLog.setValue(value)

	def getTransferLog(self):
		if self.__TransferLog == None: return None
		return self.__TransferLog.getValue()

	def delTransferLog(self):
		if self.__TransferLog == None: return None
		child = self.__TransferLog
		self.__TransferLog = None
		child.unlink()

	def setUseCanonicalName(self, value):
		if self.__UseCanonicalName == None:
			self.__UseCanonicalName = self.__list.addChild(Data.ADM_TYPE_STRING, "UseCanonicalName")
		return self.__UseCanonicalName.setValue(value)

	def getUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		return self.__UseCanonicalName.getValue()

	def delUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		child = self.__UseCanonicalName
		self.__UseCanonicalName = None
		child.unlink()

	def setUser(self, value):
		if self.__User == None:
			self.__User = self.__list.addChild(Data.ADM_TYPE_STRING, "User")
		return self.__User.setValue(value)

	def getUser(self):
		if self.__User == None: return None
		return self.__User.getValue()

	def delUser(self):
		if self.__User == None: return None
		child = self.__User
		self.__User = None
		child.unlink()

	def setVHName(self, value):
		if self.__VHName == None:
			self.__VHName = self.__list.addChild(Data.ADM_TYPE_STRING, "VHName")
		return self.__VHName.setValue(value)

	def getVHName(self):
		if self.__VHName == None: return None
		return self.__VHName.getValue()

	def delVHName(self):
		if self.__VHName == None: return None
		child = self.__VHName
		self.__VHName = None
		child.unlink()


class virtualhost:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("directories")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__directories = directories(child, self)
		except (KeyError): self.__directories = None

		child = None
		try:
			child = list.getChildByName("AccessConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessConfig = child
		except (KeyError): self.__AccessConfig = None

		child = None
		try:
			child = list.getChildByName("AccessFileName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AccessFileName = child
		except (KeyError): self.__AccessFileName = None

		child = None
		try:
			child = list.getChildByName("AddDefaultCharset")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__AddDefaultCharset = child
		except (KeyError): self.__AddDefaultCharset = None

		child = None
		try:
			child = list.getChildByName("Address")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Address = child
		except (KeyError): self.__Address = None

		child = None
		try:
			child = list.getChildByName("ContentDigest")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ContentDigest = child
		except (KeyError): self.__ContentDigest = None

		child = None
		try:
			child = list.getChildByName("DefaultType")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DefaultType = child
		except (KeyError): self.__DefaultType = None

		child = None
		try:
			child = list.getChildByName("DirectoryIndex")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DirectoryIndex = child
		except (KeyError): self.__DirectoryIndex = None

		child = None
		try:
			child = list.getChildByName("DocumentRoot")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__DocumentRoot = child
		except (KeyError): self.__DocumentRoot = None

		child = None
		try:
			child = list.getChildByName("environment")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__environment = environment(child, self)
		except (KeyError): self.__environment = None

		child = None
		try:
			child = list.getChildByName("errordocuments")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__errordocuments = errordocuments(child, self)
		except (KeyError): self.__errordocuments = None

		child = None
		try:
			child = list.getChildByName("ErrorLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ErrorLog = child
		except (KeyError): self.__ErrorLog = None

		child = None
		try:
			child = list.getChildByName("Group")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Group = child
		except (KeyError): self.__Group = None

		child = None
		try:
			child = list.getChildByName("HostNameLookups")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__HostNameLookups = child
		except (KeyError): self.__HostNameLookups = None

		child = None
		try:
			child = list.getChildByName("IdentityCheck")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__IdentityCheck = child
		except (KeyError): self.__IdentityCheck = None

		child = None
		try:
			child = list.getChildByName("LimitRequestBody")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LimitRequestBody = child
		except (KeyError): self.__LimitRequestBody = None

		child = None
		try:
			child = list.getChildByName("LogFormat")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogFormat = child
		except (KeyError): self.__LogFormat = None

		child = None
		try:
			child = list.getChildByName("LogLevel")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__LogLevel = child
		except (KeyError): self.__LogLevel = None

		child = None
		try:
			child = list.getChildByName("NameBased")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__NameBased = child
		except (KeyError): self.__NameBased = None

		child = None
		try:
			child = list.getChildByName("Options")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Options = child
		except (KeyError): self.__Options = None

		child = None
		try:
			child = list.getChildByName("ResourceConfig")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ResourceConfig = child
		except (KeyError): self.__ResourceConfig = None

		child = None
		try:
			child = list.getChildByName("RLimitCPU")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitCPU = child
		except (KeyError): self.__RLimitCPU = None

		child = None
		try:
			child = list.getChildByName("RLimitMEM")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitMEM = child
		except (KeyError): self.__RLimitMEM = None

		child = None
		try:
			child = list.getChildByName("RLimitNPROC")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__RLimitNPROC = child
		except (KeyError): self.__RLimitNPROC = None

		child = None
		try:
			child = list.getChildByName("Satisfy")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__Satisfy = child
		except (KeyError): self.__Satisfy = None

		child = None
		try:
			child = list.getChildByName("ServerAdmin")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerAdmin = child
		except (KeyError): self.__ServerAdmin = None

		child = None
		try:
			child = list.getChildByName("serveraliases")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__serveraliases = serveraliases(child, self)
		except (KeyError): self.__serveraliases = None

		child = None
		try:
			child = list.getChildByName("ServerAlias")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerAlias = child
		except (KeyError): self.__ServerAlias = None

		child = None
		try:
			child = list.getChildByName("ServerName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerName = child
		except (KeyError): self.__ServerName = None

		child = None
		try:
			child = list.getChildByName("ServerPath")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerPath = child
		except (KeyError): self.__ServerPath = None

		child = None
		try:
			child = list.getChildByName("ServerSignature")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__ServerSignature = child
		except (KeyError): self.__ServerSignature = None

		child = None
		try:
			child = list.getChildByName("SSLCACertificatePath")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCACertificatePath = child
		except (KeyError): self.__SSLCACertificatePath = None

		child = None
		try:
			child = list.getChildByName("SSLCACertificateFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCACertificateFile = child
		except (KeyError): self.__SSLCACertificateFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateFile = child
		except (KeyError): self.__SSLCertificateFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateKeyFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateKeyFile = child
		except (KeyError): self.__SSLCertificateKeyFile = None

		child = None
		try:
			child = list.getChildByName("SSLCertificateChainFile")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLCertificateChainFile = child
		except (KeyError): self.__SSLCertificateChainFile = None

		child = None
		try:
			child = list.getChildByName("SSLEngine")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLEngine = child
		except (KeyError): self.__SSLEngine = None

		child = None
		try:
			child = list.getChildByName("SSLLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLLog = child
		except (KeyError): self.__SSLLog = None

		child = None
		try:
			child = list.getChildByName("SSLLogLevel")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLLogLevel = child
		except (KeyError): self.__SSLLogLevel = None

		child = None
		try:
			child = list.getChildByName("SSLOptions")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__SSLOptions = child
		except (KeyError): self.__SSLOptions = None

		child = None
		try:
			child = list.getChildByName("TransferLog")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__TransferLog = child
		except (KeyError): self.__TransferLog = None

		child = None
		try:
			child = list.getChildByName("UseCanonicalName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__UseCanonicalName = child
		except (KeyError): self.__UseCanonicalName = None

		child = None
		try:
			child = list.getChildByName("User")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__User = child
		except (KeyError): self.__User = None

		child = None
		try:
			child = list.getChildByName("VHName")
			if child.getType() != Data.ADM_TYPE_STRING: raise TypeError
			self.__VHName = child
		except (KeyError): self.__VHName = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		return self.__list.unlink()

	def getdirectories(self):
		return self.__directories

	def deldirectories(self):
		if self.__directories:
			child = self.__directories
			self.__directories = None
			child.unlink()

	def createdirectories(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "directories")
		self.__directories = directories(child, self)
		child.setAnonymous(1)
		return self.__directories

	def setAccessConfig(self, value):
		if self.__AccessConfig == None:
			self.__AccessConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessConfig")
		return self.__AccessConfig.setValue(value)

	def getAccessConfig(self):
		if self.__AccessConfig == None: return None
		return self.__AccessConfig.getValue()

	def delAccessConfig(self):
		if self.__AccessConfig == None: return None
		child = self.__AccessConfig
		self.__AccessConfig = None
		child.unlink()

	def setAccessFileName(self, value):
		if self.__AccessFileName == None:
			self.__AccessFileName = self.__list.addChild(Data.ADM_TYPE_STRING, "AccessFileName")
		return self.__AccessFileName.setValue(value)

	def getAccessFileName(self):
		if self.__AccessFileName == None: return None
		return self.__AccessFileName.getValue()

	def delAccessFileName(self):
		if self.__AccessFileName == None: return None
		child = self.__AccessFileName
		self.__AccessFileName = None
		child.unlink()

	def setAddDefaultCharset(self, value):
		if self.__AddDefaultCharset == None:
			self.__AddDefaultCharset = self.__list.addChild(Data.ADM_TYPE_STRING, "AddDefaultCharset")
		return self.__AddDefaultCharset.setValue(value)

	def getAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		return self.__AddDefaultCharset.getValue()

	def delAddDefaultCharset(self):
		if self.__AddDefaultCharset == None: return None
		child = self.__AddDefaultCharset
		self.__AddDefaultCharset = None
		child.unlink()

	def setAddress(self, value):
		if self.__Address == None:
			self.__Address = self.__list.addChild(Data.ADM_TYPE_STRING, "Address")
		return self.__Address.setValue(value)

	def getAddress(self):
		if self.__Address == None: return None
		return self.__Address.getValue()

	def delAddress(self):
		if self.__Address == None: return None
		child = self.__Address
		self.__Address = None
		child.unlink()

	def setContentDigest(self, value):
		if self.__ContentDigest == None:
			self.__ContentDigest = self.__list.addChild(Data.ADM_TYPE_STRING, "ContentDigest")
		return self.__ContentDigest.setValue(value)

	def getContentDigest(self):
		if self.__ContentDigest == None: return None
		return self.__ContentDigest.getValue()

	def delContentDigest(self):
		if self.__ContentDigest == None: return None
		child = self.__ContentDigest
		self.__ContentDigest = None
		child.unlink()

	def setDefaultType(self, value):
		if self.__DefaultType == None:
			self.__DefaultType = self.__list.addChild(Data.ADM_TYPE_STRING, "DefaultType")
		return self.__DefaultType.setValue(value)

	def getDefaultType(self):
		if self.__DefaultType == None: return None
		return self.__DefaultType.getValue()

	def delDefaultType(self):
		if self.__DefaultType == None: return None
		child = self.__DefaultType
		self.__DefaultType = None
		child.unlink()

	def setDirectoryIndex(self, value):
		if self.__DirectoryIndex == None:
			self.__DirectoryIndex = self.__list.addChild(Data.ADM_TYPE_STRING, "DirectoryIndex")
		return self.__DirectoryIndex.setValue(value)

	def getDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		return self.__DirectoryIndex.getValue()

	def delDirectoryIndex(self):
		if self.__DirectoryIndex == None: return None
		child = self.__DirectoryIndex
		self.__DirectoryIndex = None
		child.unlink()

	def setDocumentRoot(self, value):
		if self.__DocumentRoot == None:
			self.__DocumentRoot = self.__list.addChild(Data.ADM_TYPE_STRING, "DocumentRoot")
		return self.__DocumentRoot.setValue(value)

	def getDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		return self.__DocumentRoot.getValue()

	def delDocumentRoot(self):
		if self.__DocumentRoot == None: return None
		child = self.__DocumentRoot
		self.__DocumentRoot = None
		child.unlink()

	def getenvironment(self):
		return self.__environment

	def delenvironment(self):
		if self.__environment:
			child = self.__environment
			self.__environment = None
			child.unlink()

	def createenvironment(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "environment")
		self.__environment = environment(child, self)
		child.setAnonymous(1)
		return self.__environment

	def geterrordocuments(self):
		return self.__errordocuments

	def delerrordocuments(self):
		if self.__errordocuments:
			child = self.__errordocuments
			self.__errordocuments = None
			child.unlink()

	def createerrordocuments(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "errordocuments")
		self.__errordocuments = errordocuments(child, self)
		child.setAnonymous(1)
		return self.__errordocuments

	def setErrorLog(self, value):
		if self.__ErrorLog == None:
			self.__ErrorLog = self.__list.addChild(Data.ADM_TYPE_STRING, "ErrorLog")
		return self.__ErrorLog.setValue(value)

	def getErrorLog(self):
		if self.__ErrorLog == None: return None
		return self.__ErrorLog.getValue()

	def delErrorLog(self):
		if self.__ErrorLog == None: return None
		child = self.__ErrorLog
		self.__ErrorLog = None
		child.unlink()

	def setGroup(self, value):
		if self.__Group == None:
			self.__Group = self.__list.addChild(Data.ADM_TYPE_STRING, "Group")
		return self.__Group.setValue(value)

	def getGroup(self):
		if self.__Group == None: return None
		return self.__Group.getValue()

	def delGroup(self):
		if self.__Group == None: return None
		child = self.__Group
		self.__Group = None
		child.unlink()

	def setHostNameLookups(self, value):
		if self.__HostNameLookups == None:
			self.__HostNameLookups = self.__list.addChild(Data.ADM_TYPE_STRING, "HostNameLookups")
		return self.__HostNameLookups.setValue(value)

	def getHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		return self.__HostNameLookups.getValue()

	def delHostNameLookups(self):
		if self.__HostNameLookups == None: return None
		child = self.__HostNameLookups
		self.__HostNameLookups = None
		child.unlink()

	def setIdentityCheck(self, value):
		if self.__IdentityCheck == None:
			self.__IdentityCheck = self.__list.addChild(Data.ADM_TYPE_STRING, "IdentityCheck")
		return self.__IdentityCheck.setValue(value)

	def getIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		return self.__IdentityCheck.getValue()

	def delIdentityCheck(self):
		if self.__IdentityCheck == None: return None
		child = self.__IdentityCheck
		self.__IdentityCheck = None
		child.unlink()

	def setLimitRequestBody(self, value):
		if self.__LimitRequestBody == None:
			self.__LimitRequestBody = self.__list.addChild(Data.ADM_TYPE_STRING, "LimitRequestBody")
		return self.__LimitRequestBody.setValue(value)

	def getLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		return self.__LimitRequestBody.getValue()

	def delLimitRequestBody(self):
		if self.__LimitRequestBody == None: return None
		child = self.__LimitRequestBody
		self.__LimitRequestBody = None
		child.unlink()

	def setLogFormat(self, value):
		if self.__LogFormat == None:
			self.__LogFormat = self.__list.addChild(Data.ADM_TYPE_STRING, "LogFormat")
		return self.__LogFormat.setValue(value)

	def getLogFormat(self):
		if self.__LogFormat == None: return None
		return self.__LogFormat.getValue()

	def delLogFormat(self):
		if self.__LogFormat == None: return None
		child = self.__LogFormat
		self.__LogFormat = None
		child.unlink()

	def setLogLevel(self, value):
		if self.__LogLevel == None:
			self.__LogLevel = self.__list.addChild(Data.ADM_TYPE_STRING, "LogLevel")
		return self.__LogLevel.setValue(value)

	def getLogLevel(self):
		if self.__LogLevel == None: return None
		return self.__LogLevel.getValue()

	def delLogLevel(self):
		if self.__LogLevel == None: return None
		child = self.__LogLevel
		self.__LogLevel = None
		child.unlink()

	def setNameBased(self, value):
		if self.__NameBased == None:
			self.__NameBased = self.__list.addChild(Data.ADM_TYPE_STRING, "NameBased")
		return self.__NameBased.setValue(value)

	def getNameBased(self):
		if self.__NameBased == None: return None
		return self.__NameBased.getValue()

	def delNameBased(self):
		if self.__NameBased == None: return None
		child = self.__NameBased
		self.__NameBased = None
		child.unlink()

	def setOptions(self, value):
		if self.__Options == None:
			self.__Options = self.__list.addChild(Data.ADM_TYPE_STRING, "Options")
		return self.__Options.setValue(value)

	def getOptions(self):
		if self.__Options == None: return None
		return self.__Options.getValue()

	def delOptions(self):
		if self.__Options == None: return None
		child = self.__Options
		self.__Options = None
		child.unlink()

	def setResourceConfig(self, value):
		if self.__ResourceConfig == None:
			self.__ResourceConfig = self.__list.addChild(Data.ADM_TYPE_STRING, "ResourceConfig")
		return self.__ResourceConfig.setValue(value)

	def getResourceConfig(self):
		if self.__ResourceConfig == None: return None
		return self.__ResourceConfig.getValue()

	def delResourceConfig(self):
		if self.__ResourceConfig == None: return None
		child = self.__ResourceConfig
		self.__ResourceConfig = None
		child.unlink()

	def setRLimitCPU(self, value):
		if self.__RLimitCPU == None:
			self.__RLimitCPU = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitCPU")
		return self.__RLimitCPU.setValue(value)

	def getRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		return self.__RLimitCPU.getValue()

	def delRLimitCPU(self):
		if self.__RLimitCPU == None: return None
		child = self.__RLimitCPU
		self.__RLimitCPU = None
		child.unlink()

	def setRLimitMEM(self, value):
		if self.__RLimitMEM == None:
			self.__RLimitMEM = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitMEM")
		return self.__RLimitMEM.setValue(value)

	def getRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		return self.__RLimitMEM.getValue()

	def delRLimitMEM(self):
		if self.__RLimitMEM == None: return None
		child = self.__RLimitMEM
		self.__RLimitMEM = None
		child.unlink()

	def setRLimitNPROC(self, value):
		if self.__RLimitNPROC == None:
			self.__RLimitNPROC = self.__list.addChild(Data.ADM_TYPE_STRING, "RLimitNPROC")
		return self.__RLimitNPROC.setValue(value)

	def getRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		return self.__RLimitNPROC.getValue()

	def delRLimitNPROC(self):
		if self.__RLimitNPROC == None: return None
		child = self.__RLimitNPROC
		self.__RLimitNPROC = None
		child.unlink()

	def setSatisfy(self, value):
		if self.__Satisfy == None:
			self.__Satisfy = self.__list.addChild(Data.ADM_TYPE_STRING, "Satisfy")
		return self.__Satisfy.setValue(value)

	def getSatisfy(self):
		if self.__Satisfy == None: return None
		return self.__Satisfy.getValue()

	def delSatisfy(self):
		if self.__Satisfy == None: return None
		child = self.__Satisfy
		self.__Satisfy = None
		child.unlink()

	def setServerAdmin(self, value):
		if self.__ServerAdmin == None:
			self.__ServerAdmin = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAdmin")
		return self.__ServerAdmin.setValue(value)

	def getServerAdmin(self):
		if self.__ServerAdmin == None: return None
		return self.__ServerAdmin.getValue()

	def delServerAdmin(self):
		if self.__ServerAdmin == None: return None
		child = self.__ServerAdmin
		self.__ServerAdmin = None
		child.unlink()

	def getserveraliases(self):
		return self.__serveraliases

	def delserveraliases(self):
		if self.__serveraliases:
			child = self.__serveraliases
			self.__serveraliases = None
			child.unlink()

	def createserveraliases(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "serveraliases")
		self.__serveraliases = serveraliases(child, self)
		child.setAnonymous(1)
		return self.__serveraliases

	def setServerAlias(self, value):
		if self.__ServerAlias == None:
			self.__ServerAlias = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerAlias")
		return self.__ServerAlias.setValue(value)

	def getServerAlias(self):
		if self.__ServerAlias == None: return None
		return self.__ServerAlias.getValue()

	def delServerAlias(self):
		if self.__ServerAlias == None: return None
		child = self.__ServerAlias
		self.__ServerAlias = None
		child.unlink()

	def setServerName(self, value):
		if self.__ServerName == None:
			self.__ServerName = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerName")
		return self.__ServerName.setValue(value)

	def getServerName(self):
		if self.__ServerName == None: return None
		return self.__ServerName.getValue()

	def delServerName(self):
		if self.__ServerName == None: return None
		child = self.__ServerName
		self.__ServerName = None
		child.unlink()

	def setServerPath(self, value):
		if self.__ServerPath == None:
			self.__ServerPath = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerPath")
		return self.__ServerPath.setValue(value)

	def getServerPath(self):
		if self.__ServerPath == None: return None
		return self.__ServerPath.getValue()

	def delServerPath(self):
		if self.__ServerPath == None: return None
		child = self.__ServerPath
		self.__ServerPath = None
		child.unlink()

	def setServerSignature(self, value):
		if self.__ServerSignature == None:
			self.__ServerSignature = self.__list.addChild(Data.ADM_TYPE_STRING, "ServerSignature")
		return self.__ServerSignature.setValue(value)

	def getServerSignature(self):
		if self.__ServerSignature == None: return None
		return self.__ServerSignature.getValue()

	def delServerSignature(self):
		if self.__ServerSignature == None: return None
		child = self.__ServerSignature
		self.__ServerSignature = None
		child.unlink()

	def setSSLCACertificatePath(self, value):
		if self.__SSLCACertificatePath == None:
			self.__SSLCACertificatePath = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCACertificatePath")
		return self.__SSLCACertificatePath.setValue(value)

	def getSSLCACertificatePath(self):
		if self.__SSLCACertificatePath == None: return None
		return self.__SSLCACertificatePath.getValue()

	def delSSLCACertificatePath(self):
		if self.__SSLCACertificatePath == None: return None
		child = self.__SSLCACertificatePath
		self.__SSLCACertificatePath = None
		child.unlink()

	def setSSLCACertificateFile(self, value):
		if self.__SSLCACertificateFile == None:
			self.__SSLCACertificateFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCACertificateFile")
		return self.__SSLCACertificateFile.setValue(value)

	def getSSLCACertificateFile(self):
		if self.__SSLCACertificateFile == None: return None
		return self.__SSLCACertificateFile.getValue()

	def delSSLCACertificateFile(self):
		if self.__SSLCACertificateFile == None: return None
		child = self.__SSLCACertificateFile
		self.__SSLCACertificateFile = None
		child.unlink()

	def setSSLCertificateFile(self, value):
		if self.__SSLCertificateFile == None:
			self.__SSLCertificateFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateFile")
		return self.__SSLCertificateFile.setValue(value)

	def getSSLCertificateFile(self):
		if self.__SSLCertificateFile == None: return None
		return self.__SSLCertificateFile.getValue()

	def delSSLCertificateFile(self):
		if self.__SSLCertificateFile == None: return None
		child = self.__SSLCertificateFile
		self.__SSLCertificateFile = None
		child.unlink()

	def setSSLCertificateKeyFile(self, value):
		if self.__SSLCertificateKeyFile == None:
			self.__SSLCertificateKeyFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateKeyFile")
		return self.__SSLCertificateKeyFile.setValue(value)

	def getSSLCertificateKeyFile(self):
		if self.__SSLCertificateKeyFile == None: return None
		return self.__SSLCertificateKeyFile.getValue()

	def delSSLCertificateKeyFile(self):
		if self.__SSLCertificateKeyFile == None: return None
		child = self.__SSLCertificateKeyFile
		self.__SSLCertificateKeyFile = None
		child.unlink()

	def setSSLCertificateChainFile(self, value):
		if self.__SSLCertificateChainFile == None:
			self.__SSLCertificateChainFile = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLCertificateChainFile")
		return self.__SSLCertificateChainFile.setValue(value)

	def getSSLCertificateChainFile(self):
		if self.__SSLCertificateChainFile == None: return None
		return self.__SSLCertificateChainFile.getValue()

	def delSSLCertificateChainFile(self):
		if self.__SSLCertificateChainFile == None: return None
		child = self.__SSLCertificateChainFile
		self.__SSLCertificateChainFile = None
		child.unlink()

	def setSSLEngine(self, value):
		if self.__SSLEngine == None:
			self.__SSLEngine = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLEngine")
		return self.__SSLEngine.setValue(value)

	def getSSLEngine(self):
		if self.__SSLEngine == None: return None
		return self.__SSLEngine.getValue()

	def delSSLEngine(self):
		if self.__SSLEngine == None: return None
		child = self.__SSLEngine
		self.__SSLEngine = None
		child.unlink()

	def setSSLLog(self, value):
		if self.__SSLLog == None:
			self.__SSLLog = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLLog")
		return self.__SSLLog.setValue(value)

	def getSSLLog(self):
		if self.__SSLLog == None: return None
		return self.__SSLLog.getValue()

	def delSSLLog(self):
		if self.__SSLLog == None: return None
		child = self.__SSLLog
		self.__SSLLog = None
		child.unlink()

	def setSSLLogLevel(self, value):
		if self.__SSLLogLevel == None:
			self.__SSLLogLevel = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLLogLevel")
		return self.__SSLLogLevel.setValue(value)

	def getSSLLogLevel(self):
		if self.__SSLLogLevel == None: return None
		return self.__SSLLogLevel.getValue()

	def delSSLLogLevel(self):
		if self.__SSLLogLevel == None: return None
		child = self.__SSLLogLevel
		self.__SSLLogLevel = None
		child.unlink()

	def setSSLOptions(self, value):
		if self.__SSLOptions == None:
			self.__SSLOptions = self.__list.addChild(Data.ADM_TYPE_STRING, "SSLOptions")
		return self.__SSLOptions.setValue(value)

	def getSSLOptions(self):
		if self.__SSLOptions == None: return None
		return self.__SSLOptions.getValue()

	def delSSLOptions(self):
		if self.__SSLOptions == None: return None
		child = self.__SSLOptions
		self.__SSLOptions = None
		child.unlink()

	def setTransferLog(self, value):
		if self.__TransferLog == None:
			self.__TransferLog = self.__list.addChild(Data.ADM_TYPE_STRING, "TransferLog")
		return self.__TransferLog.setValue(value)

	def getTransferLog(self):
		if self.__TransferLog == None: return None
		return self.__TransferLog.getValue()

	def delTransferLog(self):
		if self.__TransferLog == None: return None
		child = self.__TransferLog
		self.__TransferLog = None
		child.unlink()

	def setUseCanonicalName(self, value):
		if self.__UseCanonicalName == None:
			self.__UseCanonicalName = self.__list.addChild(Data.ADM_TYPE_STRING, "UseCanonicalName")
		return self.__UseCanonicalName.setValue(value)

	def getUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		return self.__UseCanonicalName.getValue()

	def delUseCanonicalName(self):
		if self.__UseCanonicalName == None: return None
		child = self.__UseCanonicalName
		self.__UseCanonicalName = None
		child.unlink()

	def setUser(self, value):
		if self.__User == None:
			self.__User = self.__list.addChild(Data.ADM_TYPE_STRING, "User")
		return self.__User.setValue(value)

	def getUser(self):
		if self.__User == None: return None
		return self.__User.getValue()

	def delUser(self):
		if self.__User == None: return None
		child = self.__User
		self.__User = None
		child.unlink()

	def setVHName(self, value):
		if self.__VHName == None:
			self.__VHName = self.__list.addChild(Data.ADM_TYPE_STRING, "VHName")
		return self.__VHName.setValue(value)

	def getVHName(self):
		if self.__VHName == None: return None
		return self.__VHName.getValue()

	def delVHName(self):
		if self.__VHName == None: return None
		child = self.__VHName
		self.__VHName = None
		child.unlink()


class virtualhosts:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delvirtualhosts()

	def getvirtualhost(self, pos):
		return virtualhost(self.__list.getChildByIndex(pos), self)

	def delvirtualhost(self, pos):
		return self.__list.getChildByIndex(pos).unlink()

	def addvirtualhost(self):
		return virtualhost(self.__list.addChild(Data.ADM_TYPE_LIST, "virtualhost"), self)

	def getNumvirtualhost(self):
		return self.__list.getNumChildren()

	def movevirtualhost(self, pos1, pos2):
		self.__list.moveChild(self.__list.getChildByIndex(pos1), pos2)


class apache:
	def __init__(self, list, parent):
		self.__list = list
		self.__parent = parent

		child = None
		try:
			child = list.getChildByName("serveroptions")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__serveroptions = serveroptions(child, self)
		except (KeyError): self.__serveroptions = None

		child = None
		try:
			child = list.getChildByName("directories")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__directories = directories(child, self)
		except (KeyError): self.__directories = None

		child = None
		try:
			child = list.getChildByName("vhostdefault")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__vhostdefault = vhostdefault(child, self)
		except (KeyError): self.__vhostdefault = None

		child = None
		try:
			child = list.getChildByName("virtualhosts")
			if child.getType() != Data.ADM_TYPE_LIST: raise TypeError
			self.__virtualhosts = virtualhosts(child, self)
		except (KeyError): self.__virtualhosts = None

	def getParent(self):
		return self.__parent

	def unlink(self):
		if self.__list:
			me = self.__list
			self.__list = None
			me.unlink()
			return self.getParent().delapache()

	def getserveroptions(self):
		return self.__serveroptions

	def delserveroptions(self):
		if self.__serveroptions:
			child = self.__serveroptions
			self.__serveroptions = None
			child.unlink()

	def createserveroptions(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "serveroptions")
		self.__serveroptions = serveroptions(child, self)
		return self.__serveroptions

	def getdirectories(self):
		return self.__directories

	def deldirectories(self):
		if self.__directories:
			child = self.__directories
			self.__directories = None
			child.unlink()

	def createdirectories(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "directories")
		self.__directories = directories(child, self)
		child.setAnonymous(1)
		return self.__directories

	def getvhostdefault(self):
		return self.__vhostdefault

	def delvhostdefault(self):
		if self.__vhostdefault:
			child = self.__vhostdefault
			self.__vhostdefault = None
			child.unlink()

	def createvhostdefault(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "vhostdefault")
		self.__vhostdefault = vhostdefault(child, self)
		return self.__vhostdefault

	def getvirtualhosts(self):
		return self.__virtualhosts

	def delvirtualhosts(self):
		if self.__virtualhosts:
			child = self.__virtualhosts
			self.__virtualhosts = None
			child.unlink()

	def createvirtualhosts(self):
		child = self.__list.addChild(Data.ADM_TYPE_LIST, "virtualhosts")
		self.__virtualhosts = virtualhosts(child, self)
		child.setAnonymous(1)
		return self.__virtualhosts



swb             = Switchboard(file_path="/etc/alchemist/switchboard/apache.switchboard.adl")
local_box_entry = swb.readNamespaceCfg("apache").getChildByName ("input_set").getChildByName ("local")
local_box       = getBox (local_box_entry.getChildByName ("box"))
ctx             = swb.cascadeNamespace("apache")
dr              = ctx.getDataRoot().getChildByName("apache")
apachebase      = apache(dr, None)

def hexstr(s):
        h = string.hexdigits
        r = ''
        for c in s:
                i = ord(c)
                r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
        return r

def write(force=FALSE):
    global ctx, local_box

    # Generate new httpd.conf using XSLT
    processor = Processor ()
    processor.appendStylesheetUri ('/usr/share/apacheconf/httpd.conf.xsl')
    result = processor.runString (ctx.toXML ())

    # Get md5sum of previous httpd.conf
    try:
        omd5 = open ('/usr/share/apacheconf/httpd.conf.md5').read ()
    except:
        omd5 = ''

    # Compute md5sum of currently installed httpd.conf
    try:
        rmd5 = hexstr (md5 (open ('/etc/httpd/conf/httpd.conf', 'r').read ()).digest())
    except:
        rmd5 = ''

    # Compute new md5sum
    nmd5 = hexstr (md5 (result).digest ())

    # Check if the old md5sum matches the one we comuted from the current
    # httpd.conf file.
    if omd5 != rmd5:
        if force:
            try:
                os.remove ('/etc/httpd/conf/httpd.conf.bak')
            except:
                pass
            try:
                os.rename ('/etc/httpd/conf/httpd.conf', '/etc/httpd/conf/httpd.conf.bak')
            except:
                pass
            open ('/etc/httpd/conf/httpd.conf', 'w').write (result)
            open ('/usr/share/apacheconf/httpd.conf.md5', 'w').write (nmd5)
            local_box.write (ctx)
	return FALSE
    else:
        open ('/etc/httpd/conf/httpd.conf', 'w').write (result)
        open ('/usr/share/apacheconf/httpd.conf.md5', 'w').write (nmd5)
        local_box.write (ctx)
	return TRUE

if __name__ == "__main__":
    write ()

