Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. /**
  2. * Helper-Klasse, um sicherzustellen dass <code>Gemeinde</code>n und <code>Forstbetrieb</code>e global
  3. * einzigartige Namen besitzen. Der <code>UniqueNameProvider</code> kapselt eine Liste aller bereits bei
  4. * diesem <code>UniqueNameProvider</code> registrierten Namen. Bei Aufruf von <code>checkName</code> wird der
  5. * uebergebene Wert mit der Liste bereits benutzter Namen abgeglichen. NOTE: <code>UniqueNameProvider</code>
  6. * ist thread-safe
  7. *
  8. * @author Michael Langowski, e1426581@student.tuwien.ac.at
  9. *
  10. */
  11. public final class UniqueNameProvider {
  12.  
  13. /**
  14. * Interne Liste aller bereits bei diesem Provider registrierten Namen.
  15. */
  16. private final CustomList registeredNames = new CustomList();
  17.  
  18. /**
  19. * Ueberprueft ob ein Name bei diesem <code>UniqueNameProvider</code> bereits registriert ist (d.h. in der
  20. * Liste der verwendeten Namen existiert)
  21. *
  22. * VB: name ist nicht null
  23. * NB: ein Wahrheitswert wird zurueckgegeben ob der Name einzigartig ist oder nicht
  24. *
  25. * @param name
  26. * der zu ueberpruefende Name
  27. * @return <code>true</code> falls der name bereits verwendet wird, sonst <code>false</code>
  28. */
  29. public final boolean nameUsed(final String name) {
  30. return this.registeredNames.contains(UniqueNameProvider.toListable(name));
  31. }
  32.  
  33. /**
  34. * Registriert einen Namen als verwendet. Der uebergebene Wert wird damit in die Liste der bereits
  35. * registrierten Namen eingetragen
  36. *
  37. * VB: name ist nicht null, der Name ist noch nicht in der Liste der registrierten Namen enthalten
  38. * NB: name wurde der Liste der registrierten Namen hinzugefuegt
  39. *
  40. * @param name
  41. * der zu registrierende name
  42. */
  43. public void registerName(String name) {
  44. synchronized (this.registeredNames) {
  45. this.registeredNames.insert(UniqueNameProvider.toListable(name));
  46. }
  47. }
  48.  
  49. /**
  50. * Interne Helper-Funktion, um <code>String</code>s in <code>Listable</code>s umzuwandeln
  51. *
  52. * @param str
  53. * <code>String</code>-Wert der als <code>Listable</code> dargestellt werden soll
  54. * @return eine neue Instanz eines anonym implementierten <code>Listable</code>, dessen
  55. * <code>getName</code>-Methode <code>str</code> zurueckgibt
  56. */
  57. private static StringListable toListable(final String str) {
  58. return new StringListable(str);
  59. }
  60.  
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement