package org.safehaus.penrose.management.schema; import org.safehaus.penrose.management.BaseService; import org.safehaus.penrose.management.PenroseJMXService; import org.safehaus.penrose.schema.*; import org.safehaus.penrose.schema.attributeSyntax.AttributeSyntax; import java.util.ArrayList; import java.util.Collection; /** * @author Endi Sukma Dewata */ public class SchemaManagerService extends BaseService implements SchemaManagerServiceMBean { SchemaManager schemaManager; public SchemaManagerService(PenroseJMXService jmxService, SchemaManager schemaManager) { this.jmxService = jmxService; this.schemaManager = schemaManager; } public Object getObject() { return schemaManager; } public String getObjectName() { return SchemaManagerClient.getStringObjectName(); } public Collection<String> getSchemaNames() throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getSchemaNames()); return list; } public Collection<String> getBuiltInSchemaNames() throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getBuiltInSchemaNames()); return list; } public Collection<String> getCustomSchemaNames() throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getCustomSchemaNames()); return list; } public Schema getSchema() throws Exception { return schemaManager.getSchema(); } public Schema getSchema(String schemaName) throws Exception { return schemaManager.getSchema(schemaName); } public void createSchema(Schema schema) throws Exception { schemaManager.createSchema(schema); } public void updateSchema(String schemaName, Schema schema) throws Exception { schemaManager.updateSchema(schemaName, schema); } public void removeSchema(String schemaName) throws Exception { schemaManager.removeSchema(schemaName); } public Collection<ObjectClass> getObjectClasses() throws Exception { Collection<ObjectClass> list = new ArrayList<ObjectClass>(); list.addAll(schemaManager.getObjectClasses()); return list; } public Collection<String> getObjectClassNames() throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getObjectClassNames()); return list; } public ObjectClass getObjectClass(String ocName) throws Exception { return schemaManager.getObjectClass(ocName); } public Collection<AttributeType> getAttributeTypes() throws Exception { Collection<AttributeType> list = new ArrayList<AttributeType>(); list.addAll(schemaManager.getAttributeTypes()); return list; } public Collection<String> getAttributeTypeNames() throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getAttributeTypeNames()); return list; } public AttributeType getAttributeType(String attributeName) throws Exception { return schemaManager.getAttributeType(attributeName); } public Collection<ObjectClass> getAllObjectClasses(String ocName) throws Exception { Collection<ObjectClass> list = new ArrayList<ObjectClass>(); list.addAll(schemaManager.getAllObjectClasses(ocName)); return list; } public Collection<String> getAllObjectClassNames(String ocName) throws Exception { Collection<String> list = new ArrayList<String>(); list.addAll(schemaManager.getAllObjectClassNames(ocName)); return list; } public Schema getMergedSchema() throws Exception { return schemaManager.getSchema(); } public AttributeSyntax getAttributeSyntax(String oid) { return schemaManager.getAttributeSyntax(oid); } public SchemaService getSchemaService(String schemaName) throws Exception { return new SchemaService(jmxService, schemaManager, schemaName); } public void init() throws Exception { super.init(); for (String schemaName : schemaManager.getSchemaNames()) { SchemaService partitionService = getSchemaService(schemaName); partitionService.init(); } } public void destroy() throws Exception { for (String schemaName : schemaManager.getSchemaNames()) { SchemaService partitionService = getSchemaService(schemaName); partitionService.destroy(); } super.destroy(); } }