package syslog.business;
import java.util.ArrayList;
import org.apache.log4j.Logger;
import syslog.database.JdbcMetadataDao;
import syslog.database.MetadataDao;
import syslog.model.DataObject;
/**
* Trida implementujici ziskavani metadat
*
* @author fero
* @version 1.0
* @created 20-XI-2008 16:22:46
*/
public class SimpleMetadataManager implements MetadataManager {
/**
* Zapisovac do logu
*/
private static Logger logger = Logger.getLogger("syslog.business.SimpleMetadataManager");
/**
* Medatadata Dao pro komunikaci s datovym ulozistem
*/
private MetadataDao _metadataDao;
/**
* Transformer transformuje vystup do textove podoby
*/
private AbstractTransformer _transformer = null;
/**
* Konstruktor
*/
public SimpleMetadataManager() {
this._metadataDao = new JdbcMetadataDao();
}
/**
* Set metadata dao pro komunikaci s datovym ulozistem
* @param MetadataDao metadataDao
*/
public void setMetadataDao(MetadataDao metadataDao){
this._metadataDao = metadataDao;
}
/**
* Get transformer slouzici pro textovy format vystupu
* @return AbstractTransformer
*/
public AbstractTransformer getTransformer(){
return this._transformer;
}
/**
* Set transformer slouzici pro textovy format vystupu
* @param AbstractTransformer transformer
*/
public void setTransformer(AbstractTransformer transformer){
this._transformer = transformer;
}
/**
* Transformuje datovou cast DataObjektu
* @param DataObject dataObj
* @return DataObject
*/
private DataObject transformDataObject(DataObject dataObj) {
if (this._transformer != null) {
TransformContext context = new TransformContext();
context.setTransformer(this._transformer);
context.setData(dataObj.getRawData());
try {
dataObj.setData( context.transform() );
} catch (Exception ex) {
logger.error("Objekt se nepodarilo transformovat: " + ex.getMessage());
dataObj.setData("");
}
}
return dataObj;
}
/**
* Ziska vsechny severity vyskytujici se v datovem ulozisti
* @return DataObject
*/
public DataObject getSeverity(){
DataObject dataObj = new DataObject();
if (this._metadataDao == null) {
logger.error("Neni definovan DAO objekt");
return new DataObject(501, "Neni definovan DAO objekt");
}
try {
ArrayList severity = (ArrayList) this._metadataDao.getSeverity();
dataObj.setCode(0);
dataObj.setMessage("Vysledek filtru vratil " + severity.size() + " objektu");
dataObj.setRawData(severity);
dataObj = this.transformDataObject(dataObj);
} catch (Exception ex) {
logger.error("Vyskytla se chyba pri pozadavku na severity: " + ex.getMessage());
return new DataObject(502, "Chyba v databazove komunikaci");
}
return dataObj;
}
/**
* Ziska vsechny facility vyskytujici se v datovem ulozisti
* @return DataObject
*/
public DataObject getFacility(){
DataObject dataObj = new DataObject();
if (this._metadataDao == null) {
logger.error("Neni definovan DAO objekt");
return new DataObject(501, "Neni definovan DAO objekt");
}
try {
ArrayList facility = (ArrayList) this._metadataDao.getFacility();
dataObj.setCode(0);
dataObj.setMessage("Vysledek filtru vratil " + facility.size() + " objektu");
dataObj.setRawData(facility);
dataObj = this.transformDataObject(dataObj);
} catch (Exception ex) {
logger.error("Vyskytla se chyba pri pozadavku na facility: " + ex.getMessage());
return new DataObject(502, "Chyba v databazove komunikaci");
}
return dataObj;
}
/**
* Ziska vsechny aplikace vyskytujici se v datovem ulozisti
* @return DataObject
*/
public DataObject getApplications(){
DataObject dataObj = new DataObject();
if (this._metadataDao == null) {
logger.error("Neni definovan DAO objekt");
return new DataObject(501, "Neni definovan DAO objekt");
}
try {
ArrayList applications = (ArrayList) this._metadataDao.getApplications();
dataObj.setCode(0);
dataObj.setMessage("Vysledek filtru vratil " + applications.size() + " objektu");
dataObj.setRawData(applications);
dataObj = this.transformDataObject(dataObj);
} catch (Exception ex) {
logger.error("Vyskytla se chyba pri pozadavku na aplikace: " + ex.getMessage());
return new DataObject(502, "Chyba v databazove komunikaci");
}
return dataObj;
}
/**
* Ziska vsechny servery vyskytujici se v datovem ulozisti
* @return DataObject
*/
public DataObject getServers(){
DataObject dataObj = new DataObject();
if (this._metadataDao == null) {
logger.error("Neni definovan DAO objekt");
return new DataObject(501, "Neni definovan DAO objekt");
}
try {
ArrayList servers = (ArrayList) this._metadataDao.getServers();
dataObj.setCode(0);
dataObj.setMessage("Vysledek filtru vratil " + servers.size() + " objektu");
dataObj.setRawData(servers);
dataObj = this.transformDataObject(dataObj);
} catch (Exception ex) {
logger.error("Vyskytla se chyba pri pozadavku na servery: " + ex.getMessage());
return new DataObject(502, "Chyba v databazove komunikaci");
}
return dataObj;
}
}