package org.axway.grapes.server.webapp.views;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yammer.dropwizard.views.View;
import org.axway.grapes.commons.datamodel.License;
import org.axway.grapes.server.webapp.views.serialization.LicenseLisSerializer;
import org.axway.grapes.server.webapp.views.utils.Table;

import java.util.ArrayList;
import java.util.List;

/**
 * License List View
 *
 * <p>View that can either be displayed in HTML or serialized in JSON that contains a list of license</p>
 *
 * @author jdcoffre
 */
@JsonSerialize(using=LicenseLisSerializer.class)
public class LicenseListView extends View {


    private final String title;

    private final List<License> licenses = new ArrayList<License>();


    public LicenseListView(final String title) {
        super("DependencyListView.ftl");
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void add(final License license) {
        if(!licenses.contains(license)){
            licenses.add(license);
        }
    }

    public void addAll(final List<License> licenses) {
        for(License license: licenses){
            add(license);
        }
    }

    public List<License> getLicenses() {
        return licenses;
    }

    /**
     * Generate a table that contains the dependencies information with the column that match the configured filters
     *
     * @return Table
     */
    public Table getTable(){
        final Table table = new Table("Name", "Long Name", "URL", "Comment");

        // Create row(s) per dependency
        for(License license: licenses){
            table.addRow(license.getName(), license.getLongName(), license.getUrl(), license.getComments());
        }
        System.out.println("-------------------------------------------> " + table.size());
        return table;
    }
}

@@ -1752,99 +1752,8 @@
   %7D%0A
-        System.out.println(%22-------------------------------------------%3E %22 + table.size());
 %0A   

Remove useless forgotten trace