Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
PollChanges.java
Package: jforum-2.1.8-src.zip [view]
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 3k
Category:
Java Develop
Development Platform:
Java
- package net.jforum.entities;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import net.jforum.view.forum.common.PostCommon;
- /**
- * An helper class that holds changes made to the pool.
- *
- * @author Rafael Steil
- * @version $Id: PollChanges.java,v 1.4 2007/04/24 02:19:46 rafaelsteil Exp $
- */
- public class PollChanges {
- private List deletedOptions = new ArrayList();
- private List newOptions = new ArrayList();
- private List changedOptions = new ArrayList();
- private boolean hasChanges;
- private Poll first;
- private Poll second;
- /**
- * @param first The "complete", most recent poll version. Usually the one
- * that's in the database.
- * @param second The poll to compare with. It usually will be a poll filled
- * by {@link PostCommon#fillPostFromRequest()}, so matches will be done againts the
- * existing poll and the data comming from the server.
- */
- public PollChanges(Poll first, Poll second) {
- this.first = first;
- this.second = second;
- }
- public void addChangedOption(PollOption option) {
- this.changedOptions.add(option);
- this.hasChanges = true;
- }
- public List getChangedOptions() {
- return this.changedOptions;
- }
- public void addDeletedOption(PollOption option) {
- this.deletedOptions.add(option);
- this.hasChanges = true;
- }
- public List getDeletedOptions() {
- return this.deletedOptions;
- }
- public void addNewOption(PollOption option) {
- this.newOptions.add(option);
- this.hasChanges = true;
- }
- public List getNewOptions() {
- return this.newOptions;
- }
- public boolean hasChanges() {
- this.searchForChanges();
- return this.hasChanges;
- }
- private void searchForChanges() {
- if (first == null || second == null) {
- return;
- }
- boolean isSame = first.getLabel().equals(second.getLabel());
- isSame &= first.getLength() == second.getLength();
- this.hasChanges = !isSame;
- List firstOptions = first.getOptions();
- List secondOptions = second.getOptions();
- // Search for changes in existing options
- for (Iterator iter = firstOptions.iterator(); iter.hasNext(); ) {
- PollOption option = (PollOption)iter.next();
- PollOption changed = this.findOptionById(option.getId(), secondOptions);
- if (changed != null && !option.getText().equals(changed.getText())) {
- this.addChangedOption(changed);
- }
- else if (changed == null) {
- this.addDeletedOption(option);
- }
- }
- // Check if the incoming poll added options
- for (Iterator iter = secondOptions.iterator(); iter.hasNext(); ) {
- PollOption option = (PollOption)iter.next();
- if (this.findOptionById(option.getId(), firstOptions) == null) {
- this.addNewOption(option);
- }
- }
- }
- private PollOption findOptionById(int id, List options) {
- for (Iterator iter = options.iterator(); iter.hasNext(); ) {
- PollOption o = (PollOption)iter.next();
- if (o.getId() == id) {
- return o;
- }
- }
- return null;
- }
- }