blob: f3f3c2f5dd994fb3771dccf61a0b537653f01836 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.jsdt.jsdoc.msdn;
import java.io.IOException;
import java.util.ArrayList;
import org.eclipse.wst.jsdt.jsdoc.ElementInfo;
import org.eclipse.wst.jsdt.jsdoc.Util;
import org.eclipse.wst.jsdt.jsdoc.XmlBasedSource;
/**
*
*/
/**
* @author childsb
*
*/
public class IeFromMsdn extends XmlBasedSource {
//String topUrl = "http://msdn2.microsoft.com/en-us/library/ms535873.aspx#";
String topUrl = "http://msdn2.microsoft.com/en-us/library/ms533054.aspx";
boolean useCache = false;
boolean keepCache = false;
public IeFromMsdn(boolean useCache, boolean keepCache) {
this.useCache=useCache;
this.keepCache=keepCache;
ElementInfo.setUseCache(useCache);
ElementInfo.setKeepCache(keepCache);
}
public ElementInfo[] getTopObjects() {
String[] allUrls = parseTopObjectPage();
MsdnElement[] parents = new MsdnElement[allUrls.length];
for(int i = 0;i<allUrls.length;i++) {
parents[i] = new MsdnElement(allUrls[i]);
}
return parents;
}
private String[] parseTopObjectPage() {
ArrayList allObject = new ArrayList();
String pageText=null;
try {
pageText = Util.retrieveFromUrl(getUrl(), useCache, keepCache);
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
String p1 = "<h2>Objects</h2><blockquote>";
String end = "</blockquote>";
int i1 = pageText.indexOf(p1);
if(i1<0) return null;
i1 = i1 + p1.length() ;
int indexOfEnd = pageText.indexOf(end, i1);
String p2 = "href=\"";
String p3 = "\"";
String baseUrl = Util.getBaseUrl(getUrl());
//System.out.println(pageText.substring(i1, indexOfEnd));
int i2 =0;
while(i2<indexOfEnd && i2>=0) {
i2 = pageText.indexOf(p2, i1) + p2.length();
if(i2>=indexOfEnd) break;
int i3 = pageText.indexOf(p3,i2);
String href = baseUrl + "/" + pageText.substring(i2,i3);
allObject.add(href);
i1=i3 + p3.length();
}
return (String[])allObject.toArray(new String[allObject.size()]);
}
public String getUrl() {
return topUrl;
}
}