/*******************************************************************************
* Copyright (c) 2011 GigaSpaces Technologies Ltd. All rights reserved
*
* 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 org.cloudifysource.shell.commands;
import org.cloudifysource.dsl.internal.CloudifyConstants;
import org.cloudifysource.dsl.rest.response.ApplicationDescription;
import org.cloudifysource.dsl.rest.response.ServiceDescription;
import org.cloudifysource.dsl.utils.ServiceUtils;
import org.cloudifysource.shell.ShellUtils;
/**
*
* @author adaml
* @since 2.3.0
*
*/
public abstract class AbstractListCommand extends AdminAwareCommand {
/**
* returns a string representation of the ApplicationDescription object.
*
* @param applicationDescription
* .
* @return application description string
*/
public String getApplicationDescriptionAsString(
final ApplicationDescription applicationDescription) {
StringBuilder sb = new StringBuilder(ShellUtils.getBoldMessage(applicationDescription.getApplicationName()))
.append(" ").append(applicationDescription.getApplicationState())
.append(CloudifyConstants.TAB_CHAR).append("Authorization Groups: ")
.append(applicationDescription.getAuthGroups());
String serviceDescriptionAsString;
for (ServiceDescription serviceDescription : applicationDescription.getServicesDescription()) {
serviceDescriptionAsString = getServiceDescriptionAsString(serviceDescription);
sb.append(CloudifyConstants.NEW_LINE);
sb.append(CloudifyConstants.TAB_CHAR).append(serviceDescriptionAsString);
}
return sb.toString();
}
private String getServiceDescriptionAsString(
final ServiceDescription serviceDescription) {
StringBuilder sb = new StringBuilder();
String absolutePUName = ServiceUtils.getAbsolutePUName(serviceDescription.getApplicationName(),
serviceDescription.getServiceName());
sb.append(ShellUtils.getBoldMessage(absolutePUName))
.append(" ").append(serviceDescription.getServiceState())
.append(" (").append(serviceDescription.getInstanceCount()).append('/')
.append(serviceDescription.getPlannedInstances()).append(')');
return sb.toString();
}
}