package org.ripple.power.server;
import java.util.ArrayList;
import java.util.List;
import org.ripple.power.utils.StringUtils;
public class LinkList {
Node root;
Node pointer;
int count;
public LinkList() {
root = new Node();
root.next = null;
pointer = null;
count = 0;
}
public void addUser(Node n) {
pointer = root;
while (pointer.next != null) {
pointer = pointer.next;
}
pointer.next = n;
n.next = null;
count++;
}
public void delUser(Node n) {
pointer = root;
while (pointer.next != null) {
if (pointer.next == n) {
pointer.next = n.next;
count--;
break;
}
pointer = pointer.next;
}
}
public int getCount() {
return count;
}
public Node findUser(String username) {
if (count == 0) {
return null;
}
pointer = root;
while (pointer.next != null) {
pointer = pointer.next;
if (pointer.username.equalsIgnoreCase(username)) {
return pointer;
}
}
return null;
}
public Node findUser(int index) {
if (count == 0) {
return null;
}
if (index < 0) {
return null;
}
pointer = root;
int i = 0;
while (i < index + 1) {
if (pointer.next != null) {
pointer = pointer.next;
} else {
return null;
}
i++;
}
return pointer;
}
public List<String> users() {
List<String> list = new ArrayList<String>();
pointer = root;
while (pointer.next != null) {
pointer = pointer.next;
if (!StringUtils.isEmpty(pointer.username)) {
list.add(pointer.username);
}
}
list.add("all");
return list;
}
}