/* * ==================== * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved. * * The contents of this file are subject to the terms of the Common Development * and Distribution License("CDDL") (the "License"). You may not use this file * except in compliance with the License. * * You can obtain a copy of the License at * http://opensource.org/licenses/cddl1.php * See the License for the specific language governing permissions and limitations * under the License. * * When distributing the Covered Code, include this CDDL Header Notice in each file * and include the License file at http://opensource.org/licenses/cddl1.php. * If applicable, add the following below this CDDL Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * ==================== * Portions Copyrighted 2010-2013 ForgeRock AS. */ package org.identityconnectors.framework.impl.api.remote.messages; import java.util.Date; import java.util.List; import java.util.Map; import org.identityconnectors.common.CollectionUtil; import org.identityconnectors.framework.api.ConnectorKey; import org.identityconnectors.framework.impl.api.remote.RemoteConnectorInfoImpl; /** * Sent in response to a {@link HelloRequest}. */ public class HelloResponse implements Message { public static final String SERVER_START_TIME = "SERVER_START_TIME"; /** * The exception */ private Throwable exception; private Map<String, Object> serverInfo; /** * List of connector infos, containing infos for all the connectors on the * server. */ private List<RemoteConnectorInfoImpl> connectorInfos; /** * List of connector keys, containing the keys of all the connectors on the * server. */ private List<ConnectorKey> connectorKeys; public HelloResponse(Throwable exception, Map<String, Object> serverInfo, List<ConnectorKey> connectorKeys, List<RemoteConnectorInfoImpl> connectorInfos) { this.exception = exception; this.serverInfo = CollectionUtil.asReadOnlyMap(serverInfo); this.connectorKeys = CollectionUtil.newReadOnlyList(connectorKeys); this.connectorInfos = CollectionUtil.newReadOnlyList(connectorInfos); } public Throwable getException() { return exception; } public List<RemoteConnectorInfoImpl> getConnectorInfos() { return connectorInfos; } public List<ConnectorKey> getConnectorKeys() { return connectorKeys; } public Map<String, Object> getServerInfo() { return serverInfo; } public Date getStartTime() { Object time = getServerInfo().get(SERVER_START_TIME); if (time instanceof Long) { return new Date((Long) time); } return null; } }