/** * Gets an unmodifiable wrapper around this list. * May or may not wrap this list itself. */ public static <K,V> Map<K,V> unmodifiable(Map<K,V> map) { if(map==null) { // Empty return Collections.emptyMap(); } return AoCollections.optimalUnmodifiableMap(map); } }
/** * Gets a map view of the resources keyed on String resourceId. * This is for compatibility with JSP EL - it is not a fast implementation. */ public Map<String,? extends Resource<?,?>> getResourceMap() { synchronized(startedLock) { LinkedHashMap<String,Resource<?,?>> map = new LinkedHashMap<String,Resource<?,?>>(resources.size()*4/3+1); for(Resource<?,?> resource : resources) map.put(resource.getId(), resource); return AoCollections.optimalUnmodifiableMap(map); } }
/** * Gets a map view of the nodes, keyed by their id. This is not a fast * implementation and is here for JSP EL compatibility. */ public Map<String,Node> getNodeMap() { Map<String,Node> nodeMap; synchronized(startedLock) { nodeMap = new LinkedHashMap<String,Node>(nodes.size()*4/3+1); for(Node node : nodes) nodeMap.put(node.getId(), node); } return AoCollections.optimalUnmodifiableMap(nodeMap); }
/** * Makes sure that every dnsRecord has a lookup for every nameserver. * Also orders the maps by the dnsRecords and then nameservers. * Returns a fully unmodifiable map. * * @exception IllegalArgumentException if any dnsRecord->nameserver result is missing. */ static Map<? extends Name,? extends Map<? extends Nameserver,? extends DnsLookupResult>> getUnmodifiableDnsLookupResults(Map<? extends Name,? extends Map<? extends Nameserver,? extends DnsLookupResult>> dnsRecordLookups, Set<? extends Name> dnsRecords, Set<? extends Nameserver> nameservers) throws IllegalArgumentException { Map<Name,Map<? extends Nameserver,? extends DnsLookupResult>> newDnsRecordLookups = new LinkedHashMap<Name,Map<? extends Nameserver,? extends DnsLookupResult>>(dnsRecords.size()*4/3+1); for(Name dnsRecord : dnsRecords) { Map<? extends Nameserver,? extends DnsLookupResult> dnsLookupResults = dnsRecordLookups.get(dnsRecord); if(dnsLookupResults==null) throw new IllegalArgumentException("Missing DNS record " + dnsRecord); Map<Nameserver,DnsLookupResult> newDnsLookupResults = new LinkedHashMap<Nameserver,DnsLookupResult>(nameservers.size()*4/3+1); for(Nameserver nameserver : nameservers) { DnsLookupResult dnsLookupResult = dnsLookupResults.get(nameserver); if(dnsLookupResult==null) throw new IllegalArgumentException("Missing DNS lookup result " + dnsLookupResult); newDnsLookupResults.put(nameserver, dnsLookupResult); } newDnsRecordLookups.put(dnsRecord, AoCollections.optimalUnmodifiableMap(newDnsLookupResults)); } return AoCollections.optimalUnmodifiableMap(newDnsRecordLookups); }
return AoCollections.optimalUnmodifiableMap(allServices);
return AoCollections.optimalUnmodifiableMap(reports);
protected JdbcResourcePropertiesConfiguration(AppClusterPropertiesConfiguration properties, String id) throws AppClusterConfigurationException { super(properties, id); this.schemas = properties.getUniqueStrings("appcluster.resource."+id+"."+type+".schemas", true); this.tableTypes = properties.getUniqueStrings("appcluster.resource."+id+"."+type+".tableTypes", true); this.excludeTables = properties.getUniqueStrings("appcluster.resource."+id+"."+type+".excludeTables", false); this.noWarnTables = properties.getUniqueStrings("appcluster.resource."+id+"."+type+".noWarnTables", false); Set<String> prepareSlaveNames = properties.getUniqueStrings("appcluster.resource."+id+"."+type+".prepareSlaves", false); if(prepareSlaveNames.isEmpty()) { this.prepareSlaves = Collections.emptyMap(); } else { Map<String,String> newPrepareSlaves = new LinkedHashMap<String,String>(prepareSlaveNames.size()*4/3+1); for(String prepareSlaveName : prepareSlaveNames) { newPrepareSlaves.put( prepareSlaveName, properties.getString("appcluster.resource."+id+"."+type+".prepareSlave."+prepareSlaveName, true) ); } this.prepareSlaves = AoCollections.optimalUnmodifiableMap(newPrepareSlaves); } }
ResourceDnsResult( Resource<?,?> resource, long startTime, long endTime, Map<? extends Name,? extends Map<? extends Nameserver,? extends DnsLookupResult>> masterRecordLookups, MasterDnsStatus masterStatus, Collection<String> masterStatusMessages, Map<? extends Node,? extends ResourceNodeDnsResult> nodeResults ) { this.startTime = startTime; this.endTime = endTime; this.resource = resource; this.masterRecordLookups = masterRecordLookups==null ? null : getUnmodifiableDnsLookupResults(masterRecordLookups, resource.getMasterRecords(), resource.getEnabledNameservers()); this.masterStatus = masterStatus; this.masterStatusMessages = getUnmodifiableSortedSet(masterStatusMessages, defaultLocaleCollator); Set<? extends ResourceNode<?,?>> resourceNodes = resource.getResourceNodes(); Map<Node,ResourceNodeDnsResult> newNodeResults = new LinkedHashMap<Node,ResourceNodeDnsResult>(resourceNodes.size()*4/3+1); for(ResourceNode<?,?> resourceNode : resourceNodes) { Node node = resourceNode.getNode(); ResourceNodeDnsResult nodeResult = nodeResults.get(node); if(nodeResult==null) throw new IllegalArgumentException("Missing node " + node); newNodeResults.put(node, nodeResult); } this.nodeResults = AoCollections.optimalUnmodifiableMap(newNodeResults); }
args==null ? null : AoCollections.optimalUnmodifiableMap(args) );
args==null ? null : AoCollections.optimalUnmodifiableMap(args) );
this.synchronizers = AoCollections.optimalUnmodifiableMap(newSynchronizers);