Please take time to read the code disclaimer.
package metadatagenerator;
import broadscope.StaticClass;
import java.io.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.*;
/**
*
* @author Kent
*/
public class Conference {
private ConferenceMDGenerator owner;
private String name = "";
private String landingPage = "";
private String conferenceString = "";
private Language englishLanguage = null;
private LinkedList sessionsList = new LinkedList();
private boolean selected = false;
private boolean ignore = false;
private Map conferenceUrlMap = new TreeMap();
//
//Strings
private String newSessionString = "";
private String sessionNameString = "(.*?)
";
private String sessionNameString2 = "\\r\\s*(.*?)
";
//Patterns
private Pattern newSessionPattern = Pattern.compile(newSessionString, Pattern.DOTALL);
private Pattern sessionNamePattern = Pattern.compile(sessionNameString, Pattern.DOTALL);
private Pattern sessionNamePattern2 = Pattern.compile(sessionNameString2, Pattern.DOTALL);
//
/**
* This is the constructor
* @param owner the ConferenceMDGenerator which got this conference
*/
public Conference(ConferenceMDGenerator owner) {
this.owner = owner;
}
/**
* This method will read the information we need from the web
*/
public void conferenceReader() {
try {
String languagesStartString = "";
Pattern languagesEndPattern = Pattern.compile(languagesEndString, Pattern.DOTALL);
do {
languagesStringBuilder.append(line);
if (languagesEndPattern.matcher(line).find()) {
break;
} else {
line = reader.readLine();
}
} while (!languagesEndPattern.matcher(line).find());
regexLangauges(languagesStringBuilder.toString());
}
/**
* This method will regex the languages string to get all the languages in which the conference is available
* @param languagesString to be regexed
*/
public void regexLangauges(String languagesString) {
String languageString = ""; //group1: conferenceURL, group2: abb, group3: englishName, group4: name;
Pattern languagePattern = Pattern.compile(languageString, Pattern.DOTALL);
Matcher languageMatcher = languagePattern.matcher(languagesString);
while (languageMatcher.find()) {
boolean found = false;
LanguageType languageType = null;
for (LanguageType conferenceLanguageType : owner.getAllLanguageTypesList()) {
if (conferenceLanguageType.getEnglishName().equals(languageMatcher.group(3))) {
languageType = conferenceLanguageType;
found = true;
break;
}
}
if (!found) {
languageType = new LanguageType();
languageType.setAbb(languageMatcher.group(2));
languageType.setEnglishName(languageMatcher.group(3));
languageType.setName(languageMatcher.group(4));
languageType.resetMormonSite();
owner.getAllLanguageTypesList().add(languageType);
}
conferenceUrlMap.put(languageType.getEnglishName(), languageMatcher.group(1).replace("&", "&"));
}
}
//
//
/**
* @return the landingPage
*/
public String getLandingPage() {
return landingPage;
}
/**
* @param landingPage the landingPage to set
*/
public void setLandingPage(String landingPage) {
this.landingPage = landingPage;
}
/**
* @return the sessionsList
*/
public LinkedList getSessionsList() {
return sessionsList;
}
/**
* @param sessionsList the sessionsList to set
*/
public void setSessionsList(LinkedList sessionsList) {
this.sessionsList = sessionsList;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the conferenceString
*/
public String getConferenceString() {
return conferenceString;
}
/**
* @param conferenceString the conferenceString to set
*/
public void setConferenceString(String conferenceString) {
this.conferenceString = conferenceString;
}
/**
* @return the selected
*/
public boolean isSelected() {
return selected;
}
/**
* @param selected the selected to set
*/
public void setSelected(boolean selected) {
this.selected = selected;
}
/**
* @return the owner
*/
public ConferenceMDGenerator getOwner() {
return owner;
}
/**
* @param owner the owner to set
*/
public void setOwner(ConferenceMDGenerator owner) {
this.owner = owner;
}
/**
* @return the ignore
*/
public boolean isIgnore() {
return ignore;
}
/**
* @param ignore the ignore to set
*/
public void setIgnore(boolean ignore) {
this.ignore = ignore;
}
/**
* @return the englishLanguage
*/
public Language getEnglishLanguage() {
return englishLanguage;
}
/**
* @param englishLanguage the englishLanguage to set
*/
public void setEnglishLanguage(Language englishLanguage) {
this.englishLanguage = englishLanguage;
}
/**
* @return the conferenceUrlMap
*/
public Map getConferenceUrlMap() {
return conferenceUrlMap;
}
/**
* @param conferenceUrlMap the conferenceUrlMap to set
*/
public void setConferenceUrlMap(Map conferenceUrlMap) {
this.conferenceUrlMap = conferenceUrlMap;
}
//
@Override
public String toString() {
return name;
}
}