package org.axway.grapes.server.webapp.views;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yammer.dropwizard.views.View;
import org.axway.grapes.server.webapp.views.serialization.ListSerializer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* List View
*
* <p>List view that can either be serialized in HTML or in JSON.</p>
*
* @author jdcoffre
*/
@JsonSerialize(using=ListSerializer.class)
public class ListView extends View{
private final String title;
private final String itemName;
private final List<String> list = new ArrayList<String>();
public ListView(final String title, final String itemName) {
super("ListView.ftl");
this.title = title;
this.itemName = itemName;
}
public String getTitle() {
return title;
}
public void addAll(final List<String> list) {
for(String element: list){
add(element);
}
}
public List<String> getItems() {
Collections.sort(list);
return list;
}
public String getItemName() {
return itemName;
}
public void add(final String element) {
if(!list.contains(element)){
list.add(element);
}
}
}