KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jetspeed > portal > portlets > util > poll > AnswerGroup


1 /* ====================================================================
2  * The Apache Software License, Version 1.1
3  *
4  * Copyright (c) 2000-2001 The Apache Software Foundation. All rights
5  * reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in
16  * the documentation and/or other materials provided with the
17  * distribution.
18  *
19  * 3. The end-user documentation included with the redistribution,
20  * if any, must include the following acknowledgment:
21  * "This product includes software developed by the
22  * Apache Software Foundation (http://www.apache.org/)."
23  * Alternately, this acknowledgment may appear in the software itself,
24  * if and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Apache" and "Apache Software Foundation" and
27  * "Apache Jetspeed" must not be used to endorse or promote products
28  * derived from this software without prior written permission. For
29  * written permission, please contact apache@apache.org.
30  *
31  * 5. Products derived from this software may not be called "Apache" or
32  * "Apache Jetspeed", nor may "Apache" appear in their name, without
33  * prior written permission of the Apache Software Foundation.
34  *
35  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46  * SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Apache Software Foundation. For more
51  * information on the Apache Software Foundation, please see
52  * <http://www.apache.org/>.
53  */

54
55 package org.apache.jetspeed.portal.portlets.util.poll;
56
57 /**
58 Groups answers together so that you can run queries on them.
59
60 @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
61 @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
62 */

63 public class AnswerGroup {
64     
65     private Answer[] answers = new Answer[0];
66     
67     /**
68     Construct a group of answers with the given answer.
69
70     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
71     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
72     */

73     public AnswerGroup( Answer[] answers ) {
74         this.answers = answers;
75     }
76     
77     /**
78     Get the answer that is currently the most popular (has the most votes).
79
80     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
81     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
82     */

83     public Answer getTopAnswer() {
84         
85         Answer top = null;
86         
87         for ( int i = 0; i < answers.length; ++i ) {
88             
89             
90             if ( top == null ||
91                  this.answers[i].getVoteCount() > top.getVoteCount() ) {
92
93                 top = this.answers[i];
94                 continue;
95
96             }
97             
98         }
99         
100         return top;
101         
102     }
103     
104     /**
105     Given an ID get an answer.
106
107     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
108     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
109     */

110     public Answer getAnswer( int id ) {
111
112         for ( int i = 0; i < answers.length; ++i ) {
113         
114             if ( answers[i].getID() == id ) {
115                 return answers[i];
116             }
117         }
118         
119         return null;
120     }
121     
122     /**
123     Get all the answers in the answer group
124
125     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
126     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
127     */

128     public Answer[] getAnswers() {
129         return this.answers;
130     }
131     
132     /**
133     Given an answer get the percentage of people that have voted for this.
134
135     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
136     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
137     */

138     public int getPercentage( Answer answer ) {
139         
140         int total = this.getTotal();
141         int votes = answer.getVoteCount();
142         
143         if ( total == 0 ||
144              votes == 0 ) {
145
146             return 0;
147         }
148         
149         float percentage = ((float) votes / total * 100);
150         
151         return (int)percentage;
152         
153     }
154     
155     /**
156     Get the total of all the vote.
157
158     @author <A HREF="mailto:burton@apache.org">Kevin A. Burton</A>
159     @version $Id: AnswerGroup.java,v 1.3 2001/03/07 07:12:37 taylor Exp $
160     */

161     public int getTotal() {
162         
163         int total = 0;
164
165         for ( int i = 0; i < answers.length; ++i ) {
166             total += answers[i].getVoteCount();
167         }
168         
169         return total;
170     }
171     
172 }
173
Popular Tags