Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Creative commons Attribution-NonCommercial license. http://creativecommons.org/licenses/by-nc/2.5/au/deed.en_GB NO WARRANTY IS GIVEN OR IMPLIED, USE AT YOUR OWN RISK.
  
  package base.jee.api.sql;
  
 
 
 import base.Command;
 import base.json.Json;
 
 import static base.jee.api.sql.util.InsertUpdateNotification.insertUpdateNotification;
 import static base.jee.api.sql.util.Log.log;
 
 public class UpsertTemplateResource extends Command {
 
 	private DataSource ds;
 	private User user;
 	private String template;
 	private String name;
 	private byte[] content;
 	private boolean binary;
 
 	public UpsertTemplateResource(DataSource dsUser userString templateString namebyte[] contentboolean binarythrows PermissionException {
 		this. = ds;
 		this. = user;
 		this. = template;
 		this. = name;
 		this. = content;
 		this. = binary;
 
 		if(ds == null) {
 			throw new IllegalArgumentException("Invalid parameter: ds");
 		}
 		if(user == null || !user.isAuthenticated()) {
 			throw new PermissionException(this.getClass().getSimpleName(), user"Requires an authenticated user.""");
 		}
 		if(template == null || template.length() == 0) {
 			throw new IllegalArgumentException("Invalid parameter: template");
 		}
 		if(template.contains(" ")) {
 			throw new IllegalArgumentException("template name must not contain whitespace");
 		}
 		if(name == null || name.length() == 0) {
 			throw new IllegalArgumentException("Invalid parameter: name");
 		}
 		if(name.contains(" ")) {
 			throw new IllegalArgumentException("resource name must not contain whitespace");
 		}
 		if(content == null || content.length == 0) {
 			throw new IllegalArgumentException("Invalid parameter: content");
 		}
 	}
 
 	protected void execute() throws IOException {
 		Connection c = null;
 		PreparedStatement s = null;
 		PreparedStatement q = null;
 		PreparedStatement t = null;
 		ResultSet r = null;
 
 		try {
 			c = .getConnection();
 			c.setAutoCommit(false);
 
 				c.rollback();
 				log(c"WARN""Permission denied invoking: " + UpsertTemplateResource.class.getSimpleName() + " " + getJsonParameters());
 				c.commit();
 				throw new IllegalStateException("You do not have permission to manage template resources.");
 			}
 
 			try {
 				s = c.prepareStatement("select name from template where name=?");
 				r = s.executeQuery();
 				if(!r.next()) {
 					throw new IllegalArgumentException("Unknown template: " + );
 				} else {
 					r.close();
 					r = null;
 					q = c.prepareStatement("select content from template_resource where template=? and resource=?");
					r = q.executeQuery();
					if(r.next()) {
						if(!Arrays.equals(r.getBytes(1), )) {
							t = c.prepareStatement("update template_resource set content=? where template=? and resource=?");
							log(c"INFO""Updated custom template resource {\"template\":\"" + Json.escape() + "\",\"resource\":\"" + Json.escape() + "\"}"new ResourceUid("Template"));
							insertUpdateNotification(c"template""update" + "|" + );
else {
							log(c"FINEST""Save to custom template resource does not change content. {\"template\":\"" + Json.escape() + "\",\"resource\":\"" + Json.escape() + "\"}"new ResourceUid("Template"));
						}
else {
						t = c.prepareStatement("insert into template_resource (template,resource,content,isbinary) values(?,?,?,?)");
						log(c"INFO""Added custom template resource {\"template\":\"" + Json.escape() + "\",\"resource\":\"" + Json.escape() + "\"}"new ResourceUid("Template"));
						insertUpdateNotification(c"template""add" + "|" + );
					}
				}
finally {
				if(r != null) { try { r.close(); } catch(Exception e) {} }
				if(q != null) { try { q.close(); } catch(Exception e) {} }
				if(s != null) { try { s.close(); } catch(Exception e) {} }
				if(t != null) { try { t.close(); } catch(Exception e) {} }
			}
			c.commit();
catch(SQLException e) {
			throw new IOException(e);
finally {
			if(c != null) {
				try { c.rollback(); } catch (SQLException e) { }
				try { c.close(); } catch (SQLException e) { }
			}
		}
	}
		return "{" +
				"\"template\":\"" + Json.escape()+ "\"," +
				"\"name\":\"" + Json.escape()+ "\"," +
				"\"content\":\"" + Base64Encode.encode() + "\"" +
				"}";
	}
New to GrepCode? Check out our FAQ X