/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.metadata.runtime.api;
import java.util.Collection;
import java.util.Date;
/**
* <p>The VirtualDatabase identifies a collection of DataSources and Virtual DataSources that a client can connect to and interrogate its metadata.</p>
*
* @since 8.0
*/
public interface VirtualDatabase extends MetadataObject {
/**
* Return the description.
* @return String
*/
String getDescription();
/**
* Returns the ModelID's that exist in this virtual database.
* @return Collection of the ModelID's contained in this VirtualDatabase
*/
Collection getModelIDs();
/**
* Returns a short indicating if the status of the VirtualDatabase. There are four
* status of the VirtualDatabase: "Incomplete", "Inactive", "Active", and "Deleted".
* @return boolean true indicates marked for deletion
*/
short getStatus();
/**
* Return the global unique identifier for this Virtual Databse. This is the ProjectGUID
* that identifies the Design Time Configuration that created this VDB.
* @return String
*/
String getGUID();
/**
* Return the date the Virtual Database was created.
* @return Date
*/
Date getVersionDate();
/**
* Return the user name who create this version of the Virtual Database.
* @return String
*/
String getVersionBy();
/**
* Return the date the Virtual Database was created.
* @return Date
*/
Date getCreationDate();
/**
* Return the user name who create this Virtual Database.
* @return String
*/
String getCreatedBy();
/**
* Return the date the Virtual Database was updated.
* @return Date
*/
Date getUpdateDate();
/**
* Return the user name who update this version of the Virtual Database.
* @return String
*/
String getUpdatedBy();
/**
* Returns the DataTypeID's that exist in this virtual database.
* @return Collection of the DataTypeID's contained in this VirtualDatabase
*/
Collection getDataTypeIDs();
/**
* Update a VDB attribute. Only the attributes defined in <code>VirtualDatabase.ModifiableAttributes</code>
* can be modefied.
* @param attribute attribute to be updated.
* @param value new value.
*/
void update(String attribute, Object value);
/**
* Get this name of the VDB jar file.
* @return the VDB's name; never null or zero-length
*/
String getFileName();
/**
* Returns true if a WSDL is defined for this VDB
* @return true if a WSDL is defined for this VDB
*/
boolean hasWSDLDefined();
/**
* Defines the VDB attributes that can be modified.
*/
public interface ModifiableAttributes{
String DESCRIPTION = "description";
}
}