/**
*
*/
package com.sean.bridge;
import java.util.List;
/**
* @author Sean_Zhang
*
*/
public interface Question {
public String nextQuestion();
public String priorQuestion();
public void newQuestion(String question);
public boolean deleteQuestion(String q);
public String getCurrentQuestion();
public List<String> getAllQuestion();
public String getCatalog();
}
/**
*
*/
package com.sean.bridge;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
/**
* @author Sean_Zhang
*
*/
public class JavaQuestion implements Question {
private List<String> questions = new LinkedList<String>();
private int current = 0;
public JavaQuestion() {
questions.add("What is Java? ");
questions.add("What is an interface? ");
questions.add("What is cross-platform? ");
questions.add("What is UFT-8? ");
questions.add("What is abstract? ");
questions.add("What is Thread? ");
questions.add("What is multi-threading? ");
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#deleteQuestion(java.lang.String)
*/
public boolean deleteQuestion(String q) {
return questions.remove(q);
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#getAllQuestion()
*/
public List<String> getAllQuestion() {
return Collections.unmodifiableList(questions);
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#getCatalog()
*/
public String getCatalog() {
return "java";
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#getCurrentQuestion()
*/
public String getCurrentQuestion() {
if(this.current >= questions.size()) {
this.current = questions.size() - 1;
}else if(this.current < 0) {
this.current = 0;
}
if(questions.size() == 0) return null;
return questions.get(this.current);
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#newQuestion(java.lang.String)
*/
public void newQuestion(String question) {
questions.add(question);
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#nextQuestion()
*/
public String nextQuestion() {
if(current >= questions.size()-1) {
return null;
}
current++;
return getCurrentQuestion();
}
/* (non-Javadoc)
* @see com.sean.bridge.Question#priorQuestion()
*/
public String priorQuestion() {
if(current <= 0) {
return null;
}
current--;
return getCurrentQuestion();
}
}
/**
*
*/
package com.sean.bridge;
import java.util.List;
/**
* @author Sean_Zhang
*
*/
public class QuestionManager {
protected Question questDB;
public void setQuestion(Question questDB) {
this.questDB = questDB;
}
public String next() {
return questDB.nextQuestion();
}
public String prior() {
return questDB.priorQuestion();
}
public void newOne(String question) {
questDB.newQuestion(question);
}
public boolean delete(String question) {
return questDB.deleteQuestion(question);
}
public String current() {
return questDB.getCurrentQuestion();
}
public List<String> getAll() {
return questDB.getAllQuestion();
}
public String getCatalog() {
return questDB.getCatalog();
}
}