/** * $Date: 2003/10/13 22:11:23 $ * $Author: Administrator $ * $Id: Clip.java,v 1.2 2003/10/13 22:11:23 Administrator Exp $ * $Revision: 1.2 $ * $Source: /mnt/flashdrive/cvshome/cl1p/web-inf/src/com/diodesoftware/scb/tables/Clip.java,v $ */ package com.diodesoftware.scb.tables; import com.diodesoftware.dbmapper.DatabaseColumn; import com.diodesoftware.dbmapper.DatabaseColumnType; import com.diodesoftware.dbmapper.DatabaseEntry; import javax.servlet.http.HttpServletRequest; import java.util.Calendar; public class Clip implements DatabaseEntry { private int number; private String uri; private String value= ""; private Calendar lastEdit = Calendar.getInstance(); private String password = ""; private boolean html; private boolean viewPassword; private Calendar cleanDate; private int keepFor = 10080; // One Week by default private String title = "cl1p.net"; private int ownerId; private int clipType; private int clipTypeId; private int rows = 40; private String emailPassword = ""; private String email = ""; private Calendar created = Calendar.getInstance(); public static final int[] ROWS = new int[]{ 5,10,15,20,25,30,35,40,50,60 }; public static final int[] KEEP_TIMES = { 60,120,480,1440,2880,10080,20160,525600 }; public static final String[] CLIP_TYPE_NAMES = new String[]{ "Plain Text", "Rich Text", "Message Board", "Todo List" }; public static final int CLIP_TYPE_PLAIN_TEXT = 0; public static final int CLIP_TYPE_RICH_TEXT = 1; public static final int CLIP_TYPE_FORUM = 2; public static final int CLIP_TYPE_TODO_LIST = 3; public static final int[] CLIP_TYPES = new int[]{ CLIP_TYPE_PLAIN_TEXT, CLIP_TYPE_RICH_TEXT, CLIP_TYPE_FORUM, CLIP_TYPE_TODO_LIST }; private boolean secure; private DatabaseColumn[] columns = new DatabaseColumn[]{ new DatabaseColumn("Uri", DatabaseColumnType.BLOB), new DatabaseColumn("Value", DatabaseColumnType.BLOB), new DatabaseColumn("LastEdit", DatabaseColumnType.DATE12), new DatabaseColumn("Password", DatabaseColumnType.PASSWORD), new DatabaseColumn("Html", DatabaseColumnType.BOOLEAN), new DatabaseColumn("ViewPassword", DatabaseColumnType.BOOLEAN), new DatabaseColumn("CleanDate", DatabaseColumnType.DATE12), new DatabaseColumn("KeepFor", DatabaseColumnType.DECIMAL), new DatabaseColumn("Title", DatabaseColumnType.CHAR_100), new DatabaseColumn("Secure", DatabaseColumnType.BOOLEAN), new DatabaseColumn("OwnerId", DatabaseColumnType.DECIMAL), new DatabaseColumn("ClipType", DatabaseColumnType.DECIMAL), new DatabaseColumn("ClipTypeId", DatabaseColumnType.DECIMAL), new DatabaseColumn("Rows", DatabaseColumnType.DECIMAL), new DatabaseColumn("FineLastEdit", DatabaseColumnType.DATEEPOCH), new DatabaseColumn("EmailPassword", DatabaseColumnType.CHAR_20), new DatabaseColumn("Email", DatabaseColumnType.TEXT), new DatabaseColumn("Created", DatabaseColumnType.DATEEPOCH) }; public Clip(){ Calendar cal = Calendar.getInstance(); cal.add(Calendar.WEEK_OF_YEAR, 1); cleanDate = cal; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public Calendar getLastEdit() { return lastEdit; } public void setLastEdit(Calendar lastEdit) { this.lastEdit = lastEdit; } public String getPassword() { return password; } public boolean isHtml() { return html; } public boolean getHtml() { return html; } public void setHtml(boolean html) { this.html = html; } public void setPassword(String password) { this.password = password; } public boolean isViewPassword() { return viewPassword; } public boolean getViewPassword(){ return viewPassword; } public void setViewPassword(boolean viewPassword) { this.viewPassword = viewPassword; } public Calendar getCleanDate() { return cleanDate; } public void setCleanDate(Calendar cleanDate) { this.cleanDate = cleanDate; } public int getKeepFor() { return keepFor; } public void setKeepFor(int keepFor) { this.keepFor = keepFor; } public void setTitle(String s){ title = s; } public String getTitle(){ return title; } public boolean getSecure(){ return isSecure(); } public boolean isSecure() { return secure; } public void setSecure(boolean secure) { this.secure = secure; } public int getOwnerId() { return ownerId; } public void setOwnerId(int ownerId) { this.ownerId = ownerId; } public DatabaseColumn[] columns() { return columns; } public static void setClip(HttpServletRequest request, Clip clip){ request.setAttribute("cl1p", clip); } public static Clip getClip(HttpServletRequest request){ return (Clip)request.getAttribute("cl1p"); } public int getClipType() { return clipType; } public void setClipType(int clipType) { this.clipType = clipType; } public int getClipTypeId() { return clipTypeId; } public void setClipTypeId(int clipTypeId) { this.clipTypeId = clipTypeId; } public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } public String getIncludeJSP(){ switch(clipType){ case CLIP_TYPE_PLAIN_TEXT: return "plainText"; case CLIP_TYPE_RICH_TEXT: return "richText"; } return "plainText"; } public long getSortCleanDate(){ return cleanDate.getTime().getTime(); } public long getSortLastEdit(){ return lastEdit.getTime().getTime(); } public Calendar getFineLastEdit() { return lastEdit; } public void setFineLastEdit(Calendar fineLastEdit) { if(fineLastEdit != null) this.lastEdit = fineLastEdit; } public String getEmailPassword() { return emailPassword; } public void setEmailPassword(String emailPassword) { this.emailPassword = emailPassword; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Calendar getCreated() { return created; } public void setCreated(Calendar created) { this.created = created; } public int daysLeft(){ return daysLeft(Calendar.getInstance()); } public int daysLeft(Calendar cal){ if(created == null)return 7*30; //TODO make sure this can't happen Calendar expire = Calendar.getInstance(); expire.setTimeInMillis(created.getTimeInMillis()); expire.add(Calendar.MINUTE, keepFor); if(cal.after(expire))return 0; long l = expire.getTimeInMillis() - cal.getTimeInMillis(); int days = (int)(l / (long)(24*60*60*1000)); days++; return days; } }