Exemplo n.º 1
0
  private static TopologyStats saveTopologyData(Customer cust, TopologyData3 td, Connection c)
      throws SQLException {
    normalizeTopolgyData(td);

    int sourceID = getSourceID(cust, td.getSourceName(), c);

    // first, create all the sites and build a map to determine the IDs for servers
    ExchSite3[] adminGroups = td.getAdminGroups();
    Map adminGroupIDs = saveSites(adminGroups, CustomerGroup.TYPE_ADMIN, sourceID, c);
    int adminCount = adminGroups.length;

    ExchSite3[] routingGroups = td.getRoutingGroups();
    Map routingGroupIDs = saveSites(routingGroups, CustomerGroup.TYPE_ROUTING, sourceID, c);
    int routingCount = routingGroups.length;

    // next, create all the servers
    Map serverIDs = saveServers(td, sourceID, adminGroupIDs, routingGroupIDs, c);
    int serverCount = serverIDs.size();

    // create all the stores
    Map storeIDs = saveStores(td, sourceID, td.getAdminGroups(), serverIDs, c);
    int storeCount = storeIDs.size();

    // finally, do any necessary deletes
    Set groupIDs = new HashSet((adminGroupIDs.size() + routingGroupIDs.size()) * 2 + 1);
    groupIDs.addAll(adminGroupIDs.values());
    groupIDs.addAll(routingGroupIDs.values());
    deleteTopologyData(c, sourceID, groupIDs, serverIDs.values(), storeIDs.values());

    TopologyStats ts = new TopologyStats();
    ts.setAdminGroupCount(adminCount);
    ts.setRoutingGroupCount(routingCount);
    ts.setServerCount(serverCount);
    ts.setStoreCount(storeCount);
    return ts;
  }