package entity; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang3.text.WordUtils; import core.Main; public class AbilityEntity extends DNDEntity{ public AbilityEntity(String n, String d){ this.name = n; this.description = d; } public AbilityEntity(LinkedHashMap<String, String> input) { for (Map.Entry<String, String> entry : input.entrySet()) { this.TYPE = DNDEntity.type.ABILITY; this.passedData = input; String field = entry.getKey(); String value = entry.getValue(); switch(field) { case "NAME": this.name = value; break; case "DESCRIPTION": this.description = value; break; default: break; } } } @Override public void search(String searchString, Thread runningThread) throws InterruptedException { if(this.name != null && this.name.toLowerCase().contains(searchString)){ Main.gameState.searchResultsLock.acquire(); //System.out.println("Lock aquired, adding " + this.name + " to results list."); Main.gameState.searchResults.put(this.name + "(" + WordUtils.capitalize(this.TYPE.toString().toLowerCase()) + ")", this); Main.gameState.searchResultsLock.release(); //System.out.println("Lock released."); return; } if(this.description != null && this.description.toLowerCase().contains(searchString)){ Main.gameState.searchResultsLock.acquire(); //System.out.println("Lock aquired, adding " + this.name + " to results list."); Main.gameState.searchResults.put(this.name, this); Main.gameState.searchResultsLock.release(); //System.out.println("Lock released."); return; } } @Override public String saveCustomContent() { String output = "<ABILITY>\n"; output += "<NAME>\n"; output += this.name + "\n"; output += "</NAME>\n"; output += "<DESCRIPTION>\n"; output += this.description + "\n"; output += "</DESCRIPTION>\n"; output += "</ABILITY>\n"; return output; } }