package com.bagri.tools.vvm.service;
import javax.management.ObjectName;
import javax.management.openmbean.TabularData;
import com.bagri.tools.vvm.model.Property;
import com.bagri.tools.vvm.model.Schema;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public interface SchemaManagementService {
DocumentManagementService getDocumentManagement(String schemaName);
List<Schema> getSchemas() throws ServiceException;
Properties getDefaultProperties() throws ServiceException;
void setDefaultProperty(Property property) throws ServiceException;
void addSchema(Schema schema) throws ServiceException;
Schema getSchema(String schemaName) throws ServiceException;
Schema getSchema(ObjectName objectName) throws ServiceException;
void saveSchema(Schema schema) throws ServiceException;
void deleteSchema(Schema schema) throws ServiceException;
void cancelQuery(String schemaName) throws ServiceException;
List<String> parseQuery(String schemaName, String query, Properties props) throws ServiceException;
Object runQuery(String schemaName, boolean direct, String query, Map<String, Object> params, Properties props) throws ServiceException;
Properties getQueryProperties(String schemaName) throws ServiceException;
long[] getSchemaVolumeStatistics(String schemaName) throws ServiceException;
long[] getSchemaTransactionStatistics(String schemaName) throws ServiceException;
List<String> getWorkingHosts(String schemaName) throws ServiceException;
TabularData getSchemaPartitionStatistics(String schemaName) throws ServiceException;
}