docs: public Map<String,Object> getDomainProperties(String strDomain)
      {
          if (m_systemRecordOwner != null)
          	if (strDomain != null)
          {   // Always
          	if (mapDomainPropertyCache != null)
          		if (mapDomainPropertyCache.get(strDomain) != null)
          			return mapDomainPropertyCache.get(strDomain);
              if (mapDomainPropertyCache == null)
                  mapDomainPropertyCache = new HashMap<String,Map<String,Object>>();
  	        Record recMenus = (Record)m_systemRecordOwner.getRecord(MenusModel.MENUS_FILE);
  	        if (recMenus == null)
  	            if (this.getProperty(DBConstants.SYSTEM_NAME) == null)
  	                if (this.getProperty(DBConstants.DEFAULT_SYSTEM_NAME) == null)
  	                    if (m_systemRecordOwner != null)
  	                            if (m_systemRecordOwner.getProperty(DBConstants.SYSTEM_NAME) == null)    // Note: This is where the user properties are.
  	                                m_systemRecordOwner.setProperty(DBConstants.SYSTEM_NAME, this.getDefaultSystemName());  // Very first time, need to see if there is a system name default
  	        
  	        Map<String,Object> mapDomainProperties = null;
              if (recMenus == null)
              {
                  recMenus = Record.makeRecordFromClassName(MenusModel.THICK_CLASS, m_systemRecordOwner);
                  BaseTable table = recMenus.getTable();
                  table = new SyncTable(table.getDatabase(), recMenus);	// Fix concurrency issues
                  recMenus.setTable(table);     // This is necessary to link-up ResourceTable
              }
              recMenus.setKeyArea(MenusModel.CODE_KEY);
  
              String strSubDomain = strDomain;
              while (strSubDomain.length() > 0)
              {
                  mapDomainProperties = this.addMenuProperties(strSubDomain, recMenus, mapDomainProperties);
                  if (strSubDomain.indexOf('.') == strSubDomain.lastIndexOf('.'))
                      break;  // xyz.com = stop looking
                  strSubDomain = strSubDomain.substring(strSubDomain.indexOf('.') + 1);  // Remove the next top level domain (ie., www)
              }
  
              if (mapDomainProperties != null)
                  if ((mapDomainProperties.size() > 0) || (mapDomainPropertyCache.get(strDomain) == null))
                      mapDomainPropertyCache.put(strDomain, mapDomainProperties); // Add this domain to the cache
  	        return mapDomainProperties;
          }
          return null;
      }