/*
 *    Copyright 2015 Achim Nierbeck
 *
 *  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.nierbeck.cassandra.embedded.shell;

import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Service;

import com.datastax.driver.core.Session;

@Command(scope = "cassandra", name = "isConnected", description = "Checks if there is a connected session available")
@Service
public class IsConnected extends CassandraCommandSupport {

	@Override
	public Object doExecute() throws Exception {

		Session session = (Session) this.session
				.get(SessionParameter.CASSANDRA_SESSION);

		boolean isActive = (session != null && !session.isClosed());

		String loggedKeyspace = "";

		if (isActive)
			loggedKeyspace = session.getLoggedKeyspace();

		if (loggedKeyspace == null || loggedKeyspace.isEmpty())
			System.out.println(isActive);
		else
			System.out.println(isActive + ": " + loggedKeyspace);


		return null;
	}

}