blob: 50c5787adf632d7f3af484fe5a6d96aa3e816012 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2008 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Kentarou FUKUDA - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.visualization.eval.html.statistics;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
import org.eclipse.actf.util.xpath.XPathUtil;
import org.eclipse.actf.visualization.Constants;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.eval.problem.IProblemItemVisitor;
public class PageData implements IPageStatisticsTag, IProblemItemVisitor {
private int brokenIntraPageLinkNum = 0;
private int brokenSkipMainNum = 0;
private Vector<FlashData> flashV = new Vector<FlashData>();
private int forwardIntraPageLinkNum = 0;//TODO check if the link reduce reaching time?
private Vector headingsV = new Vector();
private Vector imageDataV = new Vector();
private Map imageDataMap = new HashMap();
private Map linkImageDataMap = new HashMap();
private int imageAltErrorNum = 0;
private double invalidLinkRatio = 0;
private int maxTime = 0;
private int orgMaxTime = 0;
// category(missing/wrong/...)
private int missingAltNum = 0;
private int skipMainNum = 0;
private int totalImageNumber = 0;
private int totalLinkNum = 0;
private int wrongAltNum = 0;
private boolean hasJavascript = false;
/**
*
*/
public PageData() {
}
public void addFlashData(FlashData flashData) {
flashV.add(flashData);
}
public int getBrokenIntraPageLinkNum() {
return brokenIntraPageLinkNum;
}
public int getBrokenSkipMainNum() {
return brokenSkipMainNum;
}
public Vector getFlashV() {
return this.flashV;
}
public int getForwardIntraPageLinkNum() {
return forwardIntraPageLinkNum;
}
public int getHeadingCount() {
return headingsV.size();
}
public Vector getHeadingsV() {
return headingsV;
}
public int getImageAltErrorNum() {
return imageAltErrorNum;
}
public double getInvalidLinkRatio() {
return invalidLinkRatio;
}
public int getMaxTime() {
return maxTime;
}
public int getMissingAltNum() {
return missingAltNum;
}
public String getReportFragment() {
StringBuffer tmpSB = new StringBuffer();
tmpSB.append("<" + IMAGES + " " + TOTAL + "=\"" + totalImageNumber + "\" " + ERROR + "=\"" + imageAltErrorNum
+ "\" " + MISSING + "=\"" + missingAltNum + "\" " + WRONG + "=\"" + wrongAltNum + "\" " + ">"
+ Constants.LINE_SEP);
for (Iterator i = imageDataV.iterator();i.hasNext();){
tmpSB.append(((ImageStatData)i.next()).getItemXML() + Constants.LINE_SEP);
}
tmpSB.append("</"+IMAGES+">");
tmpSB.append("<" + SKIPMAIN + " " + VALID + "=\"" + skipMainNum + "\" " + ERROR + "=\"" + brokenSkipMainNum
+ "\" />" + Constants.LINE_SEP);
tmpSB.append("<" + REACHINGTIME + " " + MAX + "=\"" + maxTime + "\" " + ORG_MAX + "=\"" + orgMaxTime + "\" />");
if (flashV.size() > 0) {
tmpSB.append("<" + FLASH_INFO + " " + TOTAL + "=\"" + flashV.size() + "\">" + Constants.LINE_SEP);
for (Iterator i = flashV.iterator(); i.hasNext();) {
tmpSB.append(((FlashData) i.next()).getItemXML() + Constants.LINE_SEP);
}
tmpSB.append("</" + FLASH_INFO + ">" + Constants.LINE_SEP);
}
tmpSB.append("<" + HEADINGS + " " + TOTAL + "=\"" + headingsV.size() + "\">" + Constants.LINE_SEP);
for (Iterator i = headingsV.iterator(); i.hasNext();) {
tmpSB.append(((HeadingsData) i.next()).getItemXML() + Constants.LINE_SEP);
}
tmpSB.append("</" + HEADINGS + ">" + Constants.LINE_SEP);
tmpSB.append("<"+JAVASCRIPT+" "+getAttr(EXISTENCE,hasJavascript)+"/>");
return (tmpSB.toString());
}
private String getAttr(String name, boolean value){
return(getAttr(name,Boolean.toString(value)));
}
private String getAttr(String name, String value) {
return ((name + "=\"" + XPathUtil.canonicalize(value) + "\" "));
}
public int getSkipMainNum() {
return skipMainNum;
}
public int getTotalImageNumber() {
return totalImageNumber;
}
public int getTotalLinkNum() {
return totalLinkNum;
}
public Vector getImageDataV() {
return imageDataV;
}
public void setImageDataV(Vector imageDataV) {
this.imageDataV = imageDataV;
}
public int getWrongAltNum() {
return wrongAltNum;
}
public int getOrgMaxTime() {
return orgMaxTime;
}
public Map getImageDataMap() {
return imageDataMap;
}
public Map getLinkImageDataMap() {
return linkImageDataMap;
}
public boolean isHasJavascript() {
return hasJavascript;
}
public void setHasJavascript(boolean hasJavascript) {
this.hasJavascript = hasJavascript;
}
public void setLinkImageDataMap(Map linkImageDataMap) {
this.linkImageDataMap = linkImageDataMap;
}
public void setImageDataMap(Map imageDataMap) {
this.imageDataMap = imageDataMap;
}
public void setOrgMaxTime(int orgMaxTime) {
this.orgMaxTime = orgMaxTime;
}
public void setBrokenIntraPageLinkNum(int brokenIntraPageLinkNum) {
this.brokenIntraPageLinkNum = brokenIntraPageLinkNum;
}
public void setBrokenSkipMainNum(int brokenSkipMainNum) {
this.brokenSkipMainNum = brokenSkipMainNum;
}
public void setFlashV(Vector<FlashData> flashV) {
this.flashV = flashV;
}
public void setForwardIntraPageLinkNum(int forwardIntraPageLinkNum) {
this.forwardIntraPageLinkNum = forwardIntraPageLinkNum;
}
public void setHeadingsV(Vector headings) {
this.headingsV = headings;
}
public void setImageAltErrorNum(int imageAltErrorNum) {
this.imageAltErrorNum = imageAltErrorNum;
}
public void setInvalidLinkRatio(double invalidLinkRatio) {
this.invalidLinkRatio = invalidLinkRatio;
}
public void setMaxTime(int maxTime) {
this.maxTime = maxTime;
}
public void setMissingAltNum(int missingAltNum) {
this.missingAltNum = missingAltNum;
}
public void setSkipMainNum(int skipMainNum) {
this.skipMainNum = skipMainNum;
}
public void setTotalImageNumber(int totalImageNumber) {
this.totalImageNumber = totalImageNumber;
}
public void setTotalLinkNum(int totalLinkNum) {
this.totalLinkNum = totalLinkNum;
}
public void setWrongAltNum(int wrongAltNum) {
this.wrongAltNum = wrongAltNum;
}
/* (non-Javadoc)
* @see org.eclipse.actf.visualization.eval.problem.IProblemItemVisitor#visit(org.eclipse.actf.visualization.eval.problem.IProblemItem)
*/
public void visit(IProblemItem item) {
ImageStatData imageData = (ImageStatData)imageDataMap.get(item.getTargetNode());
if(imageData!=null){
imageData.addProblemItem(item);
}else{
imageData = (ImageStatData)linkImageDataMap.get(item.getTargetNode());
if(imageData!=null){//TODO check
imageData.addProblemItem(item);
}
}
}
}