package org.safehaus.penrose.management.schema;
import org.safehaus.penrose.management.BaseService;
import org.safehaus.penrose.management.PenroseJMXService;
import org.safehaus.penrose.schema.*;
import java.util.ArrayList;
import java.util.Collection;
/**
* @author Endi Sukma Dewata
*/
public class SchemaService extends BaseService implements SchemaServiceMBean {
SchemaManager schemaManager;
String schemaName;
public SchemaService(
PenroseJMXService jmxService,
SchemaManager schemaManager,
String schemaName
) throws Exception {
this.jmxService = jmxService;
this.schemaManager = schemaManager;
this.schemaName = schemaName;
}
public String getObjectName() {
return SchemaClient.getStringObjectName(schemaName);
}
public Object getObject() {
return getSchema();
}
public Schema getSchema() {
return schemaManager.getSchema(schemaName);
}
public Collection<AttributeType> getAttributeTypes() throws Exception {
Collection<AttributeType> list = new ArrayList<AttributeType>();
Schema schema = getSchema();
list.addAll(schema.getAttributeTypes());
return list;
}
public Collection<String> getAttributeTypeNames() throws Exception {
Collection<String> list = new ArrayList<String>();
Schema schema = getSchema();
list.addAll(schema.getAttributeTypeNames());
return list;
}
public void addAttributeType(AttributeType attributeType) throws Exception {
Schema schema = getSchema();
schema.addAttributeType(attributeType);
}
public AttributeType getAttributeType(String name) throws Exception {
Schema schema = getSchema();
return schema.getAttributeType(name);
}
public void updateAttributeType(String name, AttributeType attributeType) throws Exception {
Schema schema = getSchema();
schema.updateAttributeType(name, attributeType);
}
public void removeAttributeType(String name) throws Exception {
Schema schema = getSchema();
schema.removeAttributeType(name);
}
public Collection<ObjectClass> getObjectClasses() throws Exception {
Collection<ObjectClass> list = new ArrayList<ObjectClass>();
Schema schema = getSchema();
list.addAll(schema.getObjectClasses());
return list;
}
public Collection<String> getObjectClassNames() throws Exception {
Collection<String> list = new ArrayList<String>();
Schema schema = getSchema();
list.addAll(schema.getObjectClassNames());
return list;
}
public void addObjectClass(ObjectClass objectClass) throws Exception {
Schema schema = getSchema();
schema.addObjectClass(objectClass);
}
public ObjectClass getObjectClass(String name) throws Exception {
Schema schema = getSchema();
return schema.getObjectClass(name);
}
public void updateObjectClass(String name, ObjectClass objectClass) throws Exception {
Schema schema = getSchema();
schema.updateObjectClass(name, objectClass);
}
public void removeObjectClass(String name) throws Exception {
Schema schema = getSchema();
schema.removeObjectClass(name);
}
public void store() throws Exception {
schemaManager.storeSchema(schemaName);
}
}