// Path: warehouse-model/src/main/java/warehouse/PaletteLabel.java
// @Value
// public class PaletteLabel {
//     private final String id;
//     private final String refNo;
// 
//     @Override
//     public String toString() {
//         return id;
//     }
// }
// 
// Path: warehouse-model/src/main/java/warehouse/locations/Location.java
// @Value
// public class Location {
//     private final String location;
// 
//     public static Location production() {
//         return new Location("production");
//     }
// 
//     public static Location quarantine() {
//         return new Location("quarantine");
//     }
// 
//     public static Location onTheMove(String user) {
//         return new Location("picked by " + user);
//     }
// 
//     public static Location unknown() {
//         return new Location("<unknown>");
//     }
// }


import lombok.Builder;
import lombok.Value;
import warehouse.PaletteLabel;
import warehouse.locations.Location;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
package warehouse.picklist;



/**
 * Created by michal on 15.07.2016.
 */
@Value
@Builder
public class PickList {

    private final List<Pick> picks;

    private PickList(List<Pick> picks) {
        this.picks = Collections.unmodifiableList(picks);
    }

    @Value
    public static class Pick {
        private final PaletteLabel paletteLabel;
        private final Location location;
    }

    public static class PickListBuilder {
// Path: warehouse-model/src/main/java/warehouse/PaletteLabel.java
// @Value
// public class PaletteLabel {
//     private final String id;
//     private final String refNo;
// 
//     @Override
//     public String toString() {
//         return id;
//     }
// }
// 
// Path: warehouse-model/src/main/java/warehouse/locations/Location.java
// @Value
// public class Location {
//     private final String location;
// 
//     public static Location production() {
//         return new Location("production");
//     }
// 
//     public static Location quarantine() {
//         return new Location("quarantine");
//     }
// 
//     public static Location onTheMove(String user) {
//         return new Location("picked by " + user);
//     }
// 
//     public static Location unknown() {
//         return new Location("<unknown>");
//     }
// }


// Path: warehouse-model/src/main/java/warehouse/picklist/PickList.java
import lombok.Builder;
import lombok.Value;
import warehouse.PaletteLabel;
import warehouse.locations.Location;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

package warehouse.picklist;



/**
 * Created by michal on 15.07.2016.
 */
@Value
@Builder
public class PickList {

    private final List<Pick> picks;

    private PickList(List<Pick> picks) {
        this.picks = Collections.unmodifiableList(picks);
    }

    @Value
    public static class Pick {
        private final PaletteLabel paletteLabel;
        private final Location location;
    }

    public static class PickListBuilder {
        public PickListBuilder add(PaletteLabel paletteLabel, Location location) {