* @param Map params
* @return DataObject
*/
public DataObject saveFilter(Map params){
DataObject dataObj = new DataObject();
Filter filter = new Filter();
if (this._filterDao == null) {
logger.error("Neni definovan DAO objekt");
return new DataObject(501, "Neni definovan DAO objekt");
}
try {
/**
* V pripade ze exisuje parametr ID a ID != 0, provede aktualizaci filtru
*/
if ((params.containsKey("id") && Integer.parseInt(params.get("id").toString()) != 0 )
&& params.containsKey("password")) {
filter = this._filterDao.getFilter( Integer.parseInt(params.get("id").toString()) );
// Bezpecnostni opatreni na kontrolu hesla pri editaci - overeni ma na starost klient
// - heslo nejde jinak zmenit, resp. by se musela upravit metoda upravy filtru
/*if (!params.get("password").equals(filter.getPassword()))
return new DataObject(401, "Heslo neni spravne");*/
if (params.containsKey("name"))
filter.setName( params.get("name").toString() );
if (params.containsKey("url"))
filter.setUrl( params.get("url").toString() );
if (params.containsKey("password"))
filter.setPassword( params.get("password").toString() );
if (params.containsKey("dateFrom"))
filter.setRawDateFrom( params.get("dateFrom").toString() );
if (params.containsKey("dateTo"))
filter.setRawDateTo( params.get("dateTo").toString() );
if (params.containsKey("description"))
filter.setDescription( params.get("description").toString() );
if (params.containsKey("message"))
filter.setMessage( params.get("message").toString() );
if (params.containsKey("application") && params.get("application") instanceof Collection)
filter.setApplication( new TreeSet((List)params.get("application")) );
if (params.containsKey("facility") && params.get("facility") instanceof Collection)
filter.setFacility( new TreeSet((List)params.get("facility")) );
if (params.containsKey("severity") && params.get("severity") instanceof Collection)
filter.setSeverity( new TreeSet((List)params.get("severity")) );
if (params.containsKey("server") && params.get("server") instanceof Collection)
filter.setServer( new TreeSet((List)params.get("server")) );
int vysledek = this._filterDao.updateFilter(filter);
if (vysledek > 0) {
dataObj = new DataObject(0, "Filtr uspesne ulozen");
dataObj.setRawData(vysledek);
} else {
logger.error("Fitr se nepodarilo aktualizovat");
dataObj = new DataObject(-1, "Filtr se nepodarilo aktualizovat");
}
/**
* V pripade ze existuji neprazdne parametry NAME, URL, PASSWORD
* a zaroven parametr ID neexistuje nebo ID == 0, vlozi novy filtr
*/
} else if ((params.containsKey("name") && !params.get("name").toString().equals(""))
&& (params.containsKey("url") && !params.get("url").toString().equals(""))
&& (params.containsKey("password"))
&& (!params.containsKey("id") || Integer.parseInt( params.get("id").toString()) == 0)){
filter = new Filter();
filter.setName( params.get("name").toString() );
filter.setUrl( params.get("url").toString() );
filter.setPassword( params.get("password").toString() );
if (params.containsKey("dateFrom"))
filter.setRawDateFrom( params.get("dateFrom").toString() );
if (params.containsKey("dateTo"))
filter.setRawDateTo( params.get("dateTo").toString() );
if (params.containsKey("description"))
filter.setDescription( params.get("description").toString() );
if (params.containsKey("message"))
filter.setMessage( params.get("message").toString() );
if (params.containsKey("application") && params.get("application") instanceof Collection)
filter.setApplication( new TreeSet((List)params.get("application")) );
if (params.containsKey("facility") && params.get("facility") instanceof Collection)
filter.setFacility( new TreeSet((List)params.get("facility")) );
if (params.containsKey("severity") && params.get("severity") instanceof Collection)
filter.setSeverity( new TreeSet((List)params.get("severity")) );
if (params.containsKey("server") && params.get("server") instanceof Collection)
filter.setServer( new TreeSet((List)params.get("server")) );
int vysledek = this._filterDao.insertFilter(filter);
if (vysledek > 0) {
dataObj = new DataObject(0, "Filtr uspesne ulozen");
dataObj.setRawData(vysledek);