Skip to content

Commit

Permalink
The specific generators now work as singletons
Browse files Browse the repository at this point in the history
  • Loading branch information
UO289845 committed Apr 19, 2024
1 parent 3dbe449 commit f5f8a0e
Show file tree
Hide file tree
Showing 11 changed files with 118 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,44 +78,43 @@ public List<Question> generateQuestions(QuestionType type, int amount){
private void setGenerator(QuestionType type) {
switch (type) {
case POPULATION: {
generator = new PopulationGenerator();
generator = PopulationGenerator.getInstance();
break;
}
case CAPITAL: {
generator = new CapitalGenerator();
generator = CapitalGenerator.getInstance();
break;

}
case SIZE: {
generator = new SizeGenerator();
generator = SizeGenerator.getInstance();
break;
}
case LANGUAGE: {
generator = new LanguageGenerator();
generator = LanguageGenerator.getInstance();
break;
}
case HEAD_OF_GOVERMENT:{
generator = new HeadOfGovernmentGenerator();
case HEAD_OF_GOVERMENT: {
generator = HeadOfGovernmentGenerator.getInstance();
break;
}
case DIRECTOR: {
generator = new DirectorGenerator();
generator = DirectorGenerator.getInstance();
break;
}
case VIDEOGAME_DEVELOPER: {
generator = new VideogameDeveloperGenerator();
generator = VideogameDeveloperGenerator.getInstance();
break;
}
case VIDEOGAME_PUBLISHER: {
generator = new VideogamePublisherGenerator();
generator = VideogamePublisherGenerator.getInstance();
break;
}
case VIDEOGAME_GENRE: {
generator = new VideogameGenreGenerator();
generator = VideogameGenreGenerator.getInstance();
break;
}
case VIDEOGAME_COUNTRY:{
generator = new VideogameCountryGenerator();
case VIDEOGAME_COUNTRY: {
generator = VideogameCountryGenerator.getInstance();
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
package main.java.questionGenerator.generator.answersAreEntites.withSubProperties;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class CapitalGenerator extends AnswersAreEntitiesWithSubProperties {

private final static String PROPERTY = "P36";
private final static String PROPERTY_TO_CHECK = "P582";
private final static String MESSAGE = "question.capital";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new CapitalGenerator();
return generator;
}

public CapitalGenerator(){
private CapitalGenerator(){
super(PROPERTY, QuestionType.CAPITAL, PROPERTY_TO_CHECK, MESSAGE);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
package main.java.questionGenerator.generator.answersAreEntites.withSubProperties;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class HeadOfGovernmentGenerator extends AnswersAreEntitiesWithSubProperties {

private final static String PROPERTY = "P6";
private final static String PROPERTY_TO_CHECK = "P582";
private final static String MESSAGE = "question.governmentHead";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new HeadOfGovernmentGenerator();
return generator;
}

public HeadOfGovernmentGenerator() {
private HeadOfGovernmentGenerator() {
super(PROPERTY, QuestionType.HEAD_OF_GOVERMENT, PROPERTY_TO_CHECK, MESSAGE);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.List;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;
import main.java.questionGenerator.question.answers.AnswerFormater;
import main.java.questionGenerator.question.answers.formatAnswers.CapitalLetersFormater;
Expand All @@ -11,8 +12,16 @@ public class LanguageGenerator extends AnswersAreEntitiesWithSubProperties {
private final static String PROPERTY = "P37";
private final static String PROPERTY_TO_CHECK = "P518";
private final static String MESSAGE = "question.language";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new LanguageGenerator();
return generator;
}

public LanguageGenerator(){
private LanguageGenerator(){
super(PROPERTY, QuestionType.LANGUAGE, PROPERTY_TO_CHECK, MESSAGE);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package main.java.questionGenerator.generator.answersAreEntites.withSubProperties.videogames;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class VideogameCountryGenerator extends AbstractVideogameGenerator {
Expand All @@ -9,7 +10,15 @@ public class VideogameCountryGenerator extends AbstractVideogameGenerator {
private static final String MESSAGE = "question.videogame.country";
private static final String REAL_PROPERTY = "P495";

public VideogameCountryGenerator() {
private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new VideogameCountryGenerator();
return generator;
}

private VideogameCountryGenerator() {
super(PROPERTY, QuestionType.VIDEOGAME_COUNTRY, PROPERTY_TO_CHECK, MESSAGE, REAL_PROPERTY);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package main.java.questionGenerator.generator.answersAreEntites.withSubProperties.videogames;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class VideogameDeveloperGenerator extends AbstractVideogameGenerator {
Expand All @@ -8,9 +9,18 @@ public class VideogameDeveloperGenerator extends AbstractVideogameGenerator {
private static final String PROPERTY_TO_CHECK = "P2868";
private static final String MESSAGE = "question.videogame.developer";
private static final String REAL_PROPERTY = "P178";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new VideogameDeveloperGenerator();
return generator;
}

public VideogameDeveloperGenerator() {
private VideogameDeveloperGenerator() {
super(PROPERTY, QuestionType.VIDEOGAME_DEVELOPER, PROPERTY_TO_CHECK, MESSAGE, REAL_PROPERTY);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,27 @@

import java.util.List;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;
import main.java.questionGenerator.question.answers.AnswerFormater;
import main.java.questionGenerator.question.answers.formatAnswers.CapitalLetersFormater;
import main.java.questionGenerator.question.answers.formatAnswers.CapitalLetersFormater;;

public class VideogameGenreGenerator extends AbstractVideogameGenerator {

private static final String PROPERTY = "P404";
private static final String PROPERTY_TO_CHECK = "P2868";
private static final String MESSAGE = "question.videogame.genre";
private static final String REAL_PROPERTY = "P136";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new VideogameGenreGenerator();
return generator;
}

public VideogameGenreGenerator() {
private VideogameGenreGenerator() {
super(PROPERTY, QuestionType.VIDEOGAME_DEVELOPER, PROPERTY_TO_CHECK, MESSAGE, REAL_PROPERTY);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package main.java.questionGenerator.generator.answersAreEntites.withSubProperties.videogames;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class VideogamePublisherGenerator extends AbstractVideogameGenerator {
Expand All @@ -8,8 +9,16 @@ public class VideogamePublisherGenerator extends AbstractVideogameGenerator {
private static final String PROPERTY_TO_CHECK = "P2868";
private static final String MESSAGE = "question.videogame.publisher";
private static final String REAL_PROPERTY = "P123";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new VideogamePublisherGenerator();
return generator;
}

public VideogamePublisherGenerator() {
super(PROPERTY, QuestionType.VIDEOGAME_DEVELOPER, PROPERTY_TO_CHECK, MESSAGE, REAL_PROPERTY);
private VideogamePublisherGenerator() {
super(PROPERTY, QuestionType.VIDEOGAME_PUBLISHER, PROPERTY_TO_CHECK, MESSAGE, REAL_PROPERTY);
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
package main.java.questionGenerator.generator.answersAreEntites.withoutSubProperties;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;

public class DirectorGenerator extends AnswersAreEntitiesWithoutSubProperties{

private final static String PROPERTY = "P57";
public class DirectorGenerator extends AnswersAreEntitiesWithoutSubProperties {
private final static String PROPERTY = "P57";
private final static String MESSAGE = "question.director";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new DirectorGenerator();
return generator;
}

public DirectorGenerator() {
private DirectorGenerator() {
super(PROPERTY, QuestionType.DIRECTOR, MESSAGE);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.wikidata.wdtk.datamodel.interfaces.Statement;
import org.wikidata.wdtk.datamodel.interfaces.Value;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;
import main.java.questionGenerator.question.answers.AnswerFormater;
import main.java.questionGenerator.question.answers.formatAnswers.EmbellishNumbersFormater;
Expand All @@ -15,8 +16,16 @@ public class PopulationGenerator extends AnswersAreNotEntites {

private final static String PROPERTY = "P1082";
private final static String MESSAGE = "question.population";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new PopulationGenerator();
return generator;
}

public PopulationGenerator(){
private PopulationGenerator(){
super(PROPERTY, QuestionType.POPULATION, MESSAGE);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.wikidata.wdtk.datamodel.interfaces.Statement;
import org.wikidata.wdtk.datamodel.interfaces.Value;

import main.java.questionGenerator.generator.Generator;
import main.java.questionGenerator.question.QuestionType;
import main.java.questionGenerator.question.answers.AnswerFormater;
import main.java.questionGenerator.question.answers.formatAnswers.AddUnitsFormater;
Expand All @@ -16,8 +17,16 @@ public class SizeGenerator extends AnswersAreNotEntites {

private final static String PROPERTY = "P2046";
private final static String MESSAGE = "question.size";

private static Generator generator;

public static Generator getInstance() {
if(generator==null)
generator = new SizeGenerator();
return generator;
}

public SizeGenerator() {
private SizeGenerator() {
super(PROPERTY, QuestionType.SIZE, MESSAGE);
}

Expand Down

0 comments on commit f5f8a0e

Please sign in to comment.