Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @NodeEntity
- public class WebPage {
- @GraphId
- private Long nodeId;
- private String url;
- @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
- private Set<Link> outgoingLinks = new HashSet<>();
- public WebPage() {}
- public String getUrl() {
- return url;
- }
- public WebPage setUrl(String url) {
- this.url = url;
- return this;
- }
- @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
- public Set<Link> getOutgoingLinks() {
- return outgoingLinks;
- }
- @Relationship(type = "LINKED_TO", direction = Relationship.OUTGOING)
- public void setOutgoingLinks(Set<Link> outgoingLinks) {
- this.outgoingLinks = outgoingLinks;
- }
- public void addOutgoingLink(WebPage linkedWebPage, String anchor) {
- Link outgoingLink = new Link(this, linkedWebPage, anchor);
- outgoingLinks.remove(outgoingLink);
- outgoingLinks.add(outgoingLink);
- }
- }
- @RelationshipEntity(type = "LINKED_TO")
- public class Link {
- @GraphId
- Long id;
- @StartNode
- private WebPage sourceWebPage;
- @EndNode
- private WebPage linkWebPage;
- @Property
- private String anchor;
- public Link() {}
- public Link(WebPage sourceWebPage, WebPage linkWebPage, String anchor) {
- this.sourceWebPage = sourceWebPage;
- this.linkWebPage = linkWebPage;
- this.anchor = anchor;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((linkWebPage == null) ? 0 : linkWebPage.hashCode());
- result = prime * result + ((sourceWebPage == null) ? 0 : sourceWebPage.hashCode());
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Link other = (Link) obj;
- if (linkWebPage == null) {
- if (other.linkWebPage != null)
- return false;
- } else if (!linkWebPage.equals(other.linkWebPage))
- return false;
- if (sourceWebPage == null) {
- if (other.sourceWebPage != null)
- return false;
- } else if (!sourceWebPage.equals(other.sourceWebPage))
- return false;
- return true;
- }
- @Override
- public String toString() {
- return "Link [sourceWebPage=" + sourceWebPage + ", linkWebPage=" + linkWebPage
- + ", anchor=" + anchor + "]";
- }
- }
- @Repository
- public interface WebPageRepository extends GraphRepository<WebPage>{
- WebPage findByUrl(@Param("url") String url);
- }
- @Test
- public void test() {
- WebPage sourceWebPage = webPageRepository.findByUrl("http://www.test.com/");
- if (sourceWebPage == null) {
- sourceWebPage = new WebPage().setUrl("http://www.test.com/");
- }
- WebPage linkedWebPage = webPageRepository.findByUrl("http://www.example.com/");
- if (linkedWebPage == null) {
- linkedWebPage = new WebPage().setUrl("http://www.example.com/");
- }
- String anchor = "test";
- sourceWebPage.addOutgoingLink(linkedWebPage, anchor);
- webPageRepository.save(sourceWebPage);
- }
- public void addOutgoingLink(WebPage linkedWebPage, String anchor) {
- Link outgoingLink = new Link(this, linkedWebPage, anchor);
- outgoingLinks.remove(outgoingLink);
- outgoingLinks.add(outgoingLink);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement