UserWebAPI uWebAPI = WebAPILocator.getUserWebAPI();
WebContext ctx = WebContextFactory.get();
HttpServletRequest request = ctx.getHttpServletRequest();
User user = uWebAPI.getLoggedInUser(request);
Category parent = null;
Category cat = new Category();
cat.setCategoryName(name);
cat.setKey(key);
cat.setCategoryVelocityVarName(var);
cat.setSortOrder(sort);
cat.setKeywords(keywords);
if(UtilMethods.isSet(inode) && !save) {
cat.setInode(inode);
}
setVelocityVarName(cat, var, name);
if(InodeUtils.isSet(inode) && save)
parent = (Category) categoryAPI.find(inode, user, false);
if(merge) { // add/edit
if(save) { // Importing
if(UtilMethods.isSet(key)) {
cat = categoryAPI.findByKey(key, user, false);
if(cat==null) {
cat = new Category();
cat.setKey(key);
}
cat.setCategoryName(name);
setVelocityVarName(cat, var, name);
cat.setSortOrder(sort);
}
} else { // Editing
cat = categoryAPI.find(inode, user, false);
cat.setCategoryName(name);
setVelocityVarName(cat, var, name);
// cat.setSortOrder(sort);
cat.setKeywords(keywords);
// avoiding editing key with a already used one
Category aux = categoryAPI.findByKey(key, user, false);
if(aux!=null && !aux.getInode().equals(cat.getInode())) {
cat.setKey(getUniqueKey(key, user, 1));
} else {
cat.setKey(key);
}
}
} else { // replace
cat.setCategoryName(name);
setVelocityVarName(cat, var, name);
cat.setSortOrder(sort);
if(UtilMethods.isSet(key)) {
Category aux = categoryAPI.findByKey(key, user, false);
if(aux!=null) {
cat.setKey(getUniqueKey(key, user, 1));
} else {
cat.setKey(key);
}