This is an example of how to delete objects in the SAS Metadata Repository. This example deletes the objects created in a prior example.
/**
* This method deletes the objects we created in repository
* @param repository
*/
public void deleteTable(CMetadata repository)
{
if(repository != null)
{
try
{
System.out.println("\nDeleting the objects from the server...");
MdObjectStore store = MdObjectFactory.createObjectStore();
// Create a list containing all of the objects that need to be deleted
// from the server.
List deleteList = new ArrayList();
// Query for the table again
String xmlSelect = "<XMLSELECT Search=\"@Name='TableTest'\"/>";
String template = "<Templates>" +
"<PhysicalTable>" +
"<Columns/>" +
"</PhysicalTable>" +
"<Column>" +
"<Notes/>" +
"</Column>" +
"</Templates>";
// Add the xml select and template strings together
String sOptions = xmlSelect + template;
int flags = MetadataUtil.OMI_XMLSELECT | MetadataUtil.OMI_TEMPLATE |
MetadataUtil.OMI_GET_METADATA;
List tableList = MetadataUtil.getMetadataObjectsSubset(store,
repository.getFQID(),
MetadataObjects.PHYSICALTABLE,
flags,
sOptions);
// Now that we have the objects, we need to add them to the delete list
Iterator iter = tableList.iterator();
while (iter.hasNext())
{
PhysicalTable table = (PhysicalTable) iter.next();
deleteList.add(table);
// Get the columns
AssociationList columns = table.getColumns();
for (int i = 0; i < columns.size(); i++)
{
Column column = (Column) columns.get(i);
deleteList.add(column);
// Get the notes
AssociationList notes = column.getNotes();
for (int j = 0; j < notes.size(); j++)
{
TextStore note = (TextStore) notes.get(j);
deleteList.add(note);
}
}
}
// Delete everything added to the delete list
if (deleteList.size() > 0)
{
System.out.println("Deleting " + deleteList.size() + " objects");
MdObjectFactory.deleteMetadataObjects(deleteList);
}
// When finished, clean up the objects in the store if it is no longer
// being used
store.dispose();
}
catch (MdException e)
{
e.printStackTrace();
}
}
}