package entity; import java.util.LinkedHashMap; import java.util.Map; import core.Main; public class DeityEntity extends DNDEntity{ private String alignment; private String[] domain; private String favoredWeapon; public DeityEntity(LinkedHashMap<String, String> input){ this.TYPE = DNDEntity.type.DEITY; passedData = input; for (Map.Entry<String, String> entry : input.entrySet()){ String field = entry.getKey(); String value = entry.getValue(); switch(field){ case "NAME": this.name = value; break; case "ALIGNMENT": this.setAlignment(value); break; case "DOMAIN": this.setDomain(value.split(", ")); break; case "DESCRIPTION": this.description = value; break; case "FAVOREDWEAPON": this.favoredWeapon = 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, 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; } if(this.alignment != null && this.alignment.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; } if(this.domain != null){ for(int i = 0; i < this.domain.length; i++){ if(this.domain[i].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; } } } } public String[] getDomain() { return domain; } public void setDomain(String[] domain) { this.domain = domain; } public String getAlignment() { return alignment; } public void setAlignment(String alignment) { this.alignment = alignment; } public void setFavoredweapon(String weapon) { this.favoredWeapon = weapon; } public String getFavoredweapon() { return favoredWeapon; } @Override public String saveCustomContent() { String output = ""; return output; } }