Advertisement
Guest User

Untitled

a guest
Sep 28th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. @NodeEntity
  2. public class WebPage {
  3. @GraphId
  4. private Long nodeId;
  5.  
  6. private String url;
  7.  
  8. @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
  9. private Set<Link> outgoingLinks = new HashSet<>();
  10.  
  11. public WebPage() {}
  12.  
  13. public String getUrl() {
  14. return url;
  15. }
  16.  
  17. public WebPage setUrl(String url) {
  18. this.url = url;
  19. return this;
  20. }
  21.  
  22. @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
  23. public Set<Link> getOutgoingLinks() {
  24. return outgoingLinks;
  25. }
  26.  
  27. @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
  28. public void setOutgoingLinks(Set<Link> outgoingLinks) {
  29. this.outgoingLinks = outgoingLinks;
  30. }
  31.  
  32.  
  33. public void addOutgoingLink(WebPage linkedWebPage, String anchor) {
  34. Link outgoingLink = new Link(this, linkedWebPage, anchor);
  35. outgoingLinks.remove(outgoingLink);
  36. outgoingLinks.add(outgoingLink);
  37. }
  38. }
  39.  
  40. @RelationshipEntity(type = "LINKED_TO")
  41. public class Link {
  42. @GraphId
  43. Long id;
  44.  
  45. @StartNode
  46. private WebPage sourceWebPage;
  47. @EndNode
  48. private WebPage linkWebPage;
  49.  
  50. @Property
  51. private String anchor;
  52.  
  53. public Link() {}
  54.  
  55. public Link(WebPage sourceWebPage, WebPage linkWebPage, String anchor) {
  56. this.sourceWebPage = sourceWebPage;
  57. this.linkWebPage = linkWebPage;
  58. this.anchor = anchor;
  59. }
  60.  
  61. @Override
  62. public int hashCode() {
  63. final int prime = 31;
  64. int result = 1;
  65. result = prime * result + ((linkWebPage == null) ? 0 : linkWebPage.hashCode());
  66. result = prime * result + ((sourceWebPage == null) ? 0 : sourceWebPage.hashCode());
  67. return result;
  68. }
  69.  
  70. @Override
  71. public boolean equals(Object obj) {
  72. if (this == obj)
  73. return true;
  74. if (obj == null)
  75. return false;
  76. if (getClass() != obj.getClass())
  77. return false;
  78. Link other = (Link) obj;
  79. if (linkWebPage == null) {
  80. if (other.linkWebPage != null)
  81. return false;
  82. } else if (!linkWebPage.equals(other.linkWebPage))
  83. return false;
  84. if (sourceWebPage == null) {
  85. if (other.sourceWebPage != null)
  86. return false;
  87. } else if (!sourceWebPage.equals(other.sourceWebPage))
  88. return false;
  89. return true;
  90. }
  91.  
  92. @Override
  93. public String toString() {
  94. return "Link [sourceWebPage=" + sourceWebPage + ", linkWebPage=" + linkWebPage
  95. + ", anchor=" + anchor + "]";
  96. }
  97.  
  98. }
  99.  
  100. @Repository
  101. public interface WebPageRepository extends GraphRepository<WebPage>{
  102. WebPage findByUrl(@Param("url") String url);
  103. }
  104.  
  105. @Test
  106. public void test() {
  107. WebPage sourceWebPage = webPageRepository.findByUrl("http://www.test.com/");
  108. if (sourceWebPage == null) {
  109. sourceWebPage = new WebPage().setUrl("http://www.test.com/");
  110. }
  111. WebPage linkedWebPage = webPageRepository.findByUrl("http://www.example.com/");
  112. if (linkedWebPage == null) {
  113. linkedWebPage = new WebPage().setUrl("http://www.example.com/");
  114. }
  115.  
  116. String anchor = "test";
  117. sourceWebPage.addOutgoingLink(linkedWebPage, anchor);
  118. webPageRepository.save(sourceWebPage);
  119. }
  120.  
  121. public void addOutgoingLink(WebPage linkedWebPage, String anchor) {
  122. Link outgoingLink = new Link(this, linkedWebPage, anchor);
  123. outgoingLinks.remove(outgoingLink);
  124. outgoingLinks.add(outgoingLink);
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement