/*
* Copyright 2013 The Generic MBean CLI Project
*
* The Generic MBean CLI Project licenses this file to you 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 com.sohail.alam.generic.mbean.cli.jmx;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* <p/>
* xxxxxxxxxx
* <p/>
*
* @author Sohail Alam
* @version 1.0.0 Date: 20/5/13
* Time: 7:04 AM
* @since 1.0.0
*/
public interface DataStorage {
/**
* The constant CLASS_NAME.
*/
final String CLASS_NAME = "CLASS_NAME";
/**
* The constant READABLE.
*/
final String READABLE = "READABLE";
/**
* The constant WRITEABLE.
*/
final String WRITEABLE = "WRITEABLE";
/**
* The constant IS_GETTER.
*/
final String IS_GETTER = "IS_GETTER";
/**
* The constant DESCRIPTION.
*/
final String DESCRIPTION = "DESCRIPTION";
/**
* The constant NAME.
*/
final String NAME = "NAME";
/**
* The constant TYPE.
*/
final String TYPE = "TYPE";
/**
* The DESCRIPTION _ pOSITION.
*/
final int DESCRIPTION_POSITION = 0;
/**
* The RETURN _ tYPE _ pOSITION.
*/
final int RETURN_TYPE_POSITION = 1;
/**
* The PARAMETERS _ pOSITION.
*/
final int PARAMETERS_POSITION = 2;
/**
* Gets mbean attributes.
*
* @return the mbean attributes
*/
Map<String, HashMap<String, String>> getBeanAttributes();
/**
* Sets mbean attributes.
*
* @param beanAttributes the mbean attributes
*/
void setBeanAttributes(Map<String, HashMap<String, String>> beanAttributes);
/**
* Add to bean attribute.
*
* @param name the name
* @param className the class name
* @param readable the readable
* @param writeable the writeable
* @param isGetter the is getter
* @param description the description
*/
void addToBeanAttribute(String name, String className, String readable, String writeable, String isGetter, String description);
/**
* Gets bean operations.
*
* @return the bean operations
*/
Map<String, ArrayList<Object>> getBeanOperations();
/**
* Sets bean operations.
*
* @param beanOperations the bean operations
*/
void setBeanOperations(Map<String, ArrayList<Object>> beanOperations);
/**
* Add to m bean operations.
*
* @param name the name
* @param description the description
* @param returnType the return type
* @param parameters the parameters
*/
void addToMBeanOperations(String name, String description, String returnType, ArrayList<Map<String, String>> parameters);
/**
* Purge data storage.
*/
void purgeDataStorage();
}