Mercurial > hg > Members > kazuma > jungle-ormapper
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/data/list/headNode.java @ 0:44465893e8b8
first Commit
author | Kazuma |
---|---|
date | Wed, 30 Nov 2016 01:47:55 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:44465893e8b8 |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.jungle.data.list; | |
2 | |
3 public class headNode<T> implements Node<T> { | |
4 private final Node<T> next; | |
5 | |
6 | |
7 public headNode() { | |
8 this.next = new TailNode<>(); | |
9 } | |
10 | |
11 public headNode(Node<T> next) { | |
12 this.next = next; | |
13 } | |
14 | |
15 public Node<T> getNext() { | |
16 return next; | |
17 } | |
18 | |
19 public T getAttribute() { | |
20 return null; | |
21 } | |
22 | |
23 public Node<T> add(int currentNum, int num, T attribute) { | |
24 if (num == 0) { | |
25 Node<T> newNode = new DefaultNode<>(attribute, next); | |
26 return new headNode<>(newNode); | |
27 } | |
28 Node<T> newNode = next.add(currentNum + 1, num, attribute); | |
29 if (newNode == null) | |
30 return this; | |
31 return new headNode<>(newNode); | |
32 } | |
33 | |
34 public Node<T> addLast(T attribute) { | |
35 Node<T> node = next.addLast(attribute); | |
36 return new headNode<>(node); | |
37 } | |
38 | |
39 public Node<T> delete(int currentNum, int deleteNum) { | |
40 if (currentNum == deleteNum) { | |
41 return new headNode<>(this.next.getNext()); | |
42 } | |
43 | |
44 Node<T> newNode = next.delete(currentNum + 1, deleteNum); | |
45 if (newNode == null) | |
46 return this; | |
47 return new headNode<>(newNode); | |
48 } | |
49 | |
50 @Override | |
51 public Node<T> replaceNode(int currentNum, int num, T attribute) { | |
52 Node<T> nextNode = getNext(); | |
53 Node<T> newNode = nextNode.replaceNode(currentNum, num, attribute); | |
54 if (newNode == null) | |
55 return this; | |
56 return new headNode<>(newNode); | |
57 } | |
58 | |
59 @Override | |
60 public int length() { | |
61 return next.length(); | |
62 } | |
63 } |