Poll.java
/***************************************************************************
* Copyright (C) 2003-2007 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
***************************************************************************/
package org.exoplatform.poll.service;
import java.util.Date;
import org.exoplatform.services.jcr.util.IdGenerator;
public class Poll {
private String id;
private String parentPath;
private String oldParentPath;
private String owner;
private Date createdDate;
private String modifiedBy;
private Date modifiedDate;
private Date lastVote;
private long timeOut = 0;
private String question;
private String[] option;
private String[] vote;
private String[] userVote;
private boolean isMultiCheck = false;
private boolean isClosed = false;
private boolean isAgainVote = false;
private boolean showVote = true;
private boolean isInTopic = false;
private String votes;
private String[] infoVote;
private String expire;
private String isAdmin = "false";
private String link;
public Poll() {
id = PollNodeTypes.POLL + IdGenerator.generate();
createdDate = new Date();
option = new String[] {};
vote = new String[] {};
userVote = new String[] {};
}
public Poll(String id){
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public void setIsAdmin(String isAdmin) {
this.isAdmin = isAdmin;
}
public String getIsAdmin() {
return isAdmin;
}
public String getParentPath() {
return parentPath;
}
public void setParentPath(String path) {
this.parentPath = path;
}
public void setOldParentPath(String oldParentPath) {
this.oldParentPath = oldParentPath;
}
public String getOldParentPath() {
return oldParentPath;
}
/**
* This method should calculate the id of the topic base on the id of the post
* @return
*/
public String getTopicId() {
return null;
}
/**
* This method should calculate the id of the forum base on the id of the post
* @return
*/
public String getForumId() {
return null;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
public Date getModifiedDate() {
return modifiedDate;
}
public void setModifiedDate(Date modifiedDate) {
this.modifiedDate = modifiedDate;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public long getTimeOut() {
return timeOut;
}
public void setTimeOut(long timeOut) {
this.timeOut = timeOut;
}
public String[] getOption() {
return this.option;
}
public void setOption(String[] option) {
this.option = option;
}
public String[] getVote() {
return vote;
}
public void setVote(String[] vote) {
this.vote = vote;
}
public String[] getUserVote() {
return userVote;
}
public void setUserVote(String[] userVote) {
this.userVote = userVote;
}
public boolean getIsMultiCheck() {
return isMultiCheck;
}
public void setIsMultiCheck(boolean isMultiCheck) {
this.isMultiCheck = isMultiCheck;
}
public boolean getIsClosed() {
return isClosed;
}
public void setIsClosed(boolean isClosed) {
this.isClosed = isClosed;
}
public boolean getIsAgainVote() {
return isAgainVote;
}
public void setIsAgainVote(boolean isAgainVote) {
this.isAgainVote = isAgainVote;
}
public Date getLastVote() {
return lastVote;
}
public void setLastVote(Date lastVote) {
this.lastVote = lastVote;
}
public void setShowVote(boolean showVote) {
this.showVote = showVote;
}
public boolean getShowVote() {
return showVote;
}
public void setVotes() {
}
public String getVotes() {
int size = 0;
if (!isMultiCheck)
size = userVote.length;
else
for (int i = 0; i < userVote.length; i++)
size += userVote[i].split(":").length - 1;
votes = String.valueOf(size);
return votes;
}
public void setInfoVote() {
String[] userVotes = userVote;
long size = 0, temp = 1;
if (!this.getIsMultiCheck()) {
size = userVote.length;
} else {
for (int i = 0; i < userVote.length; i++) {
size += userVote[i].split(":").length - 1;// root:1:2:4 --> user root checked option 1, 2 and 4 --> checked time is 3
}
}
temp = size;
if (size == 0)
size = 1;
int l = vote.length;
infoVote = new String[(l + 1)];
for (int j = 0; j < l; j++) {
String string = vote[j];
double tmp = Double.parseDouble(string);
double k = (tmp * size) / 100;
double t = (double) Math.round(k);
string = String.valueOf(t * 100 / size);
int dotPos = string.indexOf(".");
int numberAfterDot = string.length() - dotPos - 1;
if (dotPos > 0 && numberAfterDot > 2)
string = string.substring(0, dotPos + 3);
infoVote[j] = string + ":" + t;
}
infoVote[l] = "" + temp;
if (this.getIsMultiCheck()) {
infoVote[l] = String.valueOf(userVotes.length);
}
}
public String[] getInfoVote() {
return infoVote;
}
public void setExpire(String expire) {
this.expire = expire;
}
public String getExpire() {
return expire;
}
/**
* @return the link
*/
public String getLink() {
return link;
}
/**
* @param link the link to set
*/
public void setLink(String link) {
this.link = link;
}
/**
* @return the isInTopic
*/
public boolean isInTopic() {
return isInTopic;
}
/**
* @param isInTopic the isInTopic to set
*/
public void setInTopic(boolean isInTopic) {
this.isInTopic = isInTopic;
}
}