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.Log.log;
 
 public class CreateTemplate extends Command {
 
 	private DataSource ds;
 	private User user;
 	private String basedOn;
 	private String name;
 
 	public CreateTemplate(DataSource dsUser userString basedOnString namethrows PermissionException {
 		this. = ds;
 		this. = name;
 		this. = user;
 		this. = basedOn;
 
 		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(name == null || name.length() == 0) {
 			throw new IllegalArgumentException("Invalid parameter: name");
 		}
 		if(basedOn == null || basedOn.length() == 0) {
 			throw new IllegalArgumentException("Invalid parameter: basedOn");
 		}
 		if(name.contains(" ")) {
 			throw new IllegalArgumentException("template name must not contain whitespace");
 		}
 	}
 
 	protected void execute() throws IOException {
 		Connection c = null;
 		PreparedStatement s = null;
 		PreparedStatement t = null;
 		PreparedStatement u = null;
 		ResultSet r = null;
 
 		try {
 			c = .getConnection();
 			c.setAutoCommit(false);
 
 				c.rollback();
 				log(c"WARN""Permission denied invoking: " + CreateTemplate.class.getSimpleName() + " " + getJsonParameters());
 				c.commit();
 				throw new IllegalStateException("You do not have permission to manage templates.");
 			}
 
 			try {
 				s = c.prepareStatement("select name from template where name=?");
 				s.setString(1, );
 				r = s.executeQuery();
 				if(r.next()) {
 					throw new IllegalArgumentException("A template already exists with this name.");
 				} else {
 					t = c.prepareStatement("insert into template (name) values(?)");
 					t.setString(1, );
 					t.close();
 					t = null;
 				}
 
 				u = c.prepareStatement("insert into template_resource (template, resource, content) select ?,resource,content from template_resource where template=?");
 				u.setString(1, );
 				u.setString(2, );
 				u.close();
 				u = null;
 			} finally {
 				if(r != null) { try { r.close(); } catch(SQLException e) { } }
 				if(s != null) { try { s.close(); } catch(SQLException e) { } }
 				if(t != null) { try { t.close(); } catch(SQLException e) { } }
				if(u != null) { try { u.close(); } catch(SQLException e) { } }
			}
			log(c"INFO""Created new template: " + new ResourceUid("Template"));
			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 "{" +
				"\"name\":\"" + Json.escape()+ "\"," +
				"\"based_on\":\"" + Json.escape()+ "\"" +
				"}";
	}
New to GrepCode? Check out our FAQ X