// Path: src/main/java/ch/picard/ppimapbuilder/data/ontology/GeneOntologyTerm.java
// public class GeneOntologyTerm extends OntologyTerm implements JSONable, Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private final String term;
// 	private final GeneOntologyCategory category;
// 	public static final int TERM_LENGTH = 10;
// 
// 	public GeneOntologyTerm(String identifier) {
// 		this(identifier, "", null);
// 	}
// 
// 	public GeneOntologyTerm(String identifier, String term, char category) {
// 		this(identifier, term, GeneOntologyCategory.getByLetter(category));
// 	}
// 
// 	public GeneOntologyTerm(String identifier, String term, GeneOntologyCategory category) {
// 		super(identifier);
// 		this.term = term;
// 		this.category = category;
// 	}
// 
// 	public String getTerm() {
// 		return term;
// 	}
// 
// 	public GeneOntologyCategory getCategory() {
// 		return category;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return getIdentifier();
// 	}
// 
// 	@Override
// 	public String toJSON() {
// 		JsonObject out = new JsonObject();
// 		out.add("id", getIdentifier());
// 		out.add("term", term);
// 		return out.toString();
// 	}
// }
// 
// Path: src/main/java/ch/picard/ppimapbuilder/data/ontology/GeneOntologyTermSet.java
// public class GeneOntologyTermSet extends HashSet<GeneOntologyTerm> {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public GeneOntologyTermSet() {
// 		super();
// 	}
// 
// 	public GeneOntologyTermSet(Collection<GeneOntologyTerm> terms) {
// 		super(terms);
// 	}
// 
// 	public GeneOntologyTermSet getByCategory(GeneOntologyCategory category) {
// 		GeneOntologyTermSet result = new GeneOntologyTermSet();
// 		for (GeneOntologyTerm geneOntologyTerm : this) {
// 			if(geneOntologyTerm.getCategory().equals(category))
// 				result.add(geneOntologyTerm);
// 		}
// 		return result;
// 	}
// 
// 	public List<String> asStringList() {
// 		ArrayList<String> list = new ArrayList<String>();
// 		for (GeneOntologyTerm go : this)
// 			list.add(go.toString());
// 		return list;
// 	}
// }


import ch.picard.ppimapbuilder.data.ontology.GeneOntologyTerm;
import ch.picard.ppimapbuilder.data.ontology.GeneOntologyTermSet;
import ch.picard.ppimapbuilder.data.organism.Organism;
import com.eclipsesource.json.JsonObject;
import java.util.*;
				getOrCreateSynonymGeneNames().add(synonymGeneName);
			return this;
		}

		public Builder addSynonymGeneNames(Collection<String> synonymGeneNames) {
			for (String synonymGeneName : synonymGeneNames)
				addSynonymGeneName(synonymGeneName);
			return this;
		}

		public Builder setProteinName(String proteinName) {
			this.proteinName = proteinName;
			return this;
		}

		public Builder setEcNumber(String ecNumber) {
			this.ecNumber = ecNumber;
			return this;
		}

		public Builder setReviewed(boolean reviewed) {
			this.reviewed = reviewed;
			return this;
		}

		private GeneOntologyTermSet getOrCreateGeneOntologyTerms() {
			if(geneOntologyTerms != null) return geneOntologyTerms;
			return geneOntologyTerms = new GeneOntologyTermSet();
		}

// Path: src/main/java/ch/picard/ppimapbuilder/data/ontology/GeneOntologyTerm.java
// public class GeneOntologyTerm extends OntologyTerm implements JSONable, Serializable {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private final String term;
// 	private final GeneOntologyCategory category;
// 	public static final int TERM_LENGTH = 10;
// 
// 	public GeneOntologyTerm(String identifier) {
// 		this(identifier, "", null);
// 	}
// 
// 	public GeneOntologyTerm(String identifier, String term, char category) {
// 		this(identifier, term, GeneOntologyCategory.getByLetter(category));
// 	}
// 
// 	public GeneOntologyTerm(String identifier, String term, GeneOntologyCategory category) {
// 		super(identifier);
// 		this.term = term;
// 		this.category = category;
// 	}
// 
// 	public String getTerm() {
// 		return term;
// 	}
// 
// 	public GeneOntologyCategory getCategory() {
// 		return category;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return getIdentifier();
// 	}
// 
// 	@Override
// 	public String toJSON() {
// 		JsonObject out = new JsonObject();
// 		out.add("id", getIdentifier());
// 		out.add("term", term);
// 		return out.toString();
// 	}
// }
// 
// Path: src/main/java/ch/picard/ppimapbuilder/data/ontology/GeneOntologyTermSet.java
// public class GeneOntologyTermSet extends HashSet<GeneOntologyTerm> {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public GeneOntologyTermSet() {
// 		super();
// 	}
// 
// 	public GeneOntologyTermSet(Collection<GeneOntologyTerm> terms) {
// 		super(terms);
// 	}
// 
// 	public GeneOntologyTermSet getByCategory(GeneOntologyCategory category) {
// 		GeneOntologyTermSet result = new GeneOntologyTermSet();
// 		for (GeneOntologyTerm geneOntologyTerm : this) {
// 			if(geneOntologyTerm.getCategory().equals(category))
// 				result.add(geneOntologyTerm);
// 		}
// 		return result;
// 	}
// 
// 	public List<String> asStringList() {
// 		ArrayList<String> list = new ArrayList<String>();
// 		for (GeneOntologyTerm go : this)
// 			list.add(go.toString());
// 		return list;
// 	}
// }


// Path: src/main/java/ch/picard/ppimapbuilder/data/protein/UniProtEntry.java
import ch.picard.ppimapbuilder.data.ontology.GeneOntologyTerm;
import ch.picard.ppimapbuilder.data.ontology.GeneOntologyTermSet;
import ch.picard.ppimapbuilder.data.organism.Organism;
import com.eclipsesource.json.JsonObject;
import java.util.*;

				getOrCreateSynonymGeneNames().add(synonymGeneName);
			return this;
		}

		public Builder addSynonymGeneNames(Collection<String> synonymGeneNames) {
			for (String synonymGeneName : synonymGeneNames)
				addSynonymGeneName(synonymGeneName);
			return this;
		}

		public Builder setProteinName(String proteinName) {
			this.proteinName = proteinName;
			return this;
		}

		public Builder setEcNumber(String ecNumber) {
			this.ecNumber = ecNumber;
			return this;
		}

		public Builder setReviewed(boolean reviewed) {
			this.reviewed = reviewed;
			return this;
		}

		private GeneOntologyTermSet getOrCreateGeneOntologyTerms() {
			if(geneOntologyTerms != null) return geneOntologyTerms;
			return geneOntologyTerms = new GeneOntologyTermSet();
		}

		public Builder addGeneOntologyTerms(Collection<GeneOntologyTerm> terms) {