package ddth.dasp.servlet.runtime.menu;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MenuItem {
private Object id;
private String name;
private String url;
private List<MenuItem> children;
private int position;
public static MenuItem createMenuItem(Object id, String name, String url, int position) {
MenuItem menuItem = new MenuItem();
menuItem.id = id;
menuItem.name = name;
menuItem.url = url;
menuItem.position = position;
return menuItem;
}
public Object getId() {
return id;
}
public void setId(Object id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public MenuItem[] getChildren() {
return children != null ? children.toArray(new MenuItem[0]) : null;
}
public void addChild(MenuItem child) {
if (children == null) {
children = new ArrayList<MenuItem>();
// children = new TreeSet<MenuItem>(new Comparator<MenuItem>() {
// @Override
// public int compare(MenuItem menuItem1, MenuItem menuItem2) {
// return menuItem1.position - menuItem2.position;
// }
// });
}
// if (!children.contains(child)) {
children.add(child);
Collections.sort(children, new Comparator<MenuItem>() {
@Override
public int compare(MenuItem menuItem1, MenuItem menuItem2) {
return menuItem1.position - menuItem2.position;
}
});
// }
}
// /**
// * {@inheritDoc}
// */
// @Override
// public boolean equals(Object obj) {
// if (!(obj instanceof MenuItem)) {
// return false;
// }
// MenuItem other = (MenuItem) obj;
// return new EqualsBuilder().append(this.id, other.id).isEquals();
// }
//
// /**
// * {@inheritDoc}
// */
// @Override
// public int hashCode() {
// return new HashCodeBuilder(19,
// 81).append(id).append(name).append(url).hashCode();
// }
}