de.otto.mongodb.profiler.web.ConnectionsPageViewModel.java Source code

Java tutorial

Introduction

Here is the source code for de.otto.mongodb.profiler.web.ConnectionsPageViewModel.java

Source

/*
 *  Copyright 2013 Robert Gacki <robert.gacki@cgi.com>
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package de.otto.mongodb.profiler.web;

import com.mongodb.ServerAddress;
import de.otto.mongodb.profiler.ProfiledConnection;

import java.text.Collator;
import java.util.*;

public class ConnectionsPageViewModel {

    private final static Comparator<ProfiledConnection> BY_NAME_COMPARATOR = new Comparator<ProfiledConnection>() {

        final Collator collator = Collator.getInstance(Locale.ENGLISH);

        @Override
        public int compare(ProfiledConnection o1, ProfiledConnection o2) {
            return collator.compare(o1.getName(), o1.getName());
        }
    };

    private final List<? extends ProfiledConnection> connections;

    public ConnectionsPageViewModel(List<? extends ProfiledConnection> connections) {
        this.connections = new ArrayList<>(connections);
        Collections.sort(this.connections, BY_NAME_COMPARATOR);
    }

    public List<? extends ProfiledConnection> getConnections() {
        return connections;
    }

    public String serversAsString(ProfiledConnection connection) {
        final StringBuilder sb = new StringBuilder();
        for (ServerAddress serverAddress : connection.getConfiguration().getServerAddresses()) {
            if (sb.length() > 0) {
                sb.append(", ");
            }
            sb.append(serverAddress.getHost());
            if (serverAddress.getPort() != 27017) {
                sb.append(":").append(serverAddress.getPort());
            }
        }
        return sb.toString();
    }
}