/**
* VMware Continuent Tungsten Replicator
* Copyright (C) 2015 VMware, Inc. 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.
*
* Initial developer(s): Ed Archibald
* Contributor(s): Linas Virbalas
*/
package com.continuent.tungsten.manager.resource.physical;
import com.continuent.tungsten.common.cluster.resource.Resource;
import com.continuent.tungsten.common.cluster.resource.ResourceType;
import com.continuent.tungsten.common.jmx.DynamicMBeanOperation;
public class Operation extends Resource
{
/**
*
*/
private static final long serialVersionUID = 1L;
DynamicMBeanOperation operation = null;
public Operation()
{
super(ResourceType.OPERATION, "UNKNOWN");
}
public Operation(String name)
{
super(ResourceType.OPERATION, name);
init();
}
private void init()
{
this.childType = ResourceType.NONE;
this.isContainer = false;
}
public void setOperation(DynamicMBeanOperation operation)
{
this.operation = operation;
}
/**
* @return the operation
*/
public DynamicMBeanOperation getOperation()
{
return operation;
}
@Override
public String toString()
{
if (operation != null)
return operation.toString();
else
return name;
}
public String describe(boolean detailed)
{
StringBuilder builder = new StringBuilder();
if (operation != null)
{
builder.append(String.format("name=%s, type=%s\n", getName(),
getType()));
builder.append(("{\n"));
builder.append(String.format(" description=%s\n",
operation.getDescription()));
builder.append(String.format(" usage=%s\n", operation.getUsage()));
String paramDesc = operation.getParamDescription(true, " ");
if (paramDesc != null && paramDesc.length() > 0)
{
builder.append(paramDesc);
builder.append("\n");
}
builder.append(("}"));
return builder.toString();
}
return super.describe(detailed);
}
}