// Path: my-aktion/src/main/java/de/dpunkt/myaktion/model/Donation.java
// @NamedQueries({
//         @NamedQuery(name = Donation.findByStatus, query = "SELECT d FROM Donation d WHERE d.status = :status")
// })
// @Entity
// public class Donation {
//     public static final String findByStatus = "Donation.findByStatus";
// 
//     @NotNull(message = "{donation.amount.notNull}")
//     @DecimalMin(value = "1.00", message = "{donation.amount.decimalMin}")
//     private Double amount;
// 
//     @NotNull
//     @Size(min = 5, max = 40, message = "{donation.donorName.size}")
//     private String donorName;
// 
//     @NotNull
//     private Boolean receiptRequested;
// 
//     @NotNull
//     private Status status;
// 
//     @NotNull
//     @Embedded
//     private Account account;
// 
//     @NotNull
//     @ManyToOne
//     private Campaign campaign;
// 
//     @GeneratedValue
//     @Id
//     private Long id;
// 
//     public enum Status {
//         TRANSFERRED, IN_PROCESS;
//     }
// 
//     public Donation() {
//         this.account = new Account();
//     }
// 
//     public Double getAmount() {
//         return amount;
//     }
// 
//     public void setAmount(Double amount) {
//         this.amount = amount;
//     }
// 
//     public String getDonorName() {
//         return donorName;
//     }
// 
//     public void setDonorName(String donorName) {
//         this.donorName = donorName;
//     }
// 
//     public Boolean getReceiptRequested() {
//         return receiptRequested;
//     }
// 
//     public void setReceiptRequested(Boolean receiptRequested) {
//         this.receiptRequested = receiptRequested;
//     }
// 
//     public Status getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     public Account getAccount() {
//         return account;
//     }
// 
//     public void setAccount(Account account) {
//         this.account = account;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Campaign getCampaign() {
//         return campaign;
//     }
// 
//     public void setCampaign(Campaign campaign) {
//         this.campaign = campaign;
//     }
// }


import de.dpunkt.myaktion.model.Donation;
import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
import java.text.NumberFormat;
package de.dpunkt.myaktion.monitor;



public class DonationEncoder implements Encoder.Text<Donation> {
    @Override
    public String encode(Donation donation) {
        NumberFormat format = NumberFormat.getCurrencyInstance();
        String amount = format.format(donation.getAmount());
        Object args[] = {donation.getDonorName(), amount};
        return String.format("%s hat %s gespendet.", args);
    }

    @Override
    public void destroy() {
    }

    @Override
// Path: my-aktion/src/main/java/de/dpunkt/myaktion/model/Donation.java
// @NamedQueries({
//         @NamedQuery(name = Donation.findByStatus, query = "SELECT d FROM Donation d WHERE d.status = :status")
// })
// @Entity
// public class Donation {
//     public static final String findByStatus = "Donation.findByStatus";
// 
//     @NotNull(message = "{donation.amount.notNull}")
//     @DecimalMin(value = "1.00", message = "{donation.amount.decimalMin}")
//     private Double amount;
// 
//     @NotNull
//     @Size(min = 5, max = 40, message = "{donation.donorName.size}")
//     private String donorName;
// 
//     @NotNull
//     private Boolean receiptRequested;
// 
//     @NotNull
//     private Status status;
// 
//     @NotNull
//     @Embedded
//     private Account account;
// 
//     @NotNull
//     @ManyToOne
//     private Campaign campaign;
// 
//     @GeneratedValue
//     @Id
//     private Long id;
// 
//     public enum Status {
//         TRANSFERRED, IN_PROCESS;
//     }
// 
//     public Donation() {
//         this.account = new Account();
//     }
// 
//     public Double getAmount() {
//         return amount;
//     }
// 
//     public void setAmount(Double amount) {
//         this.amount = amount;
//     }
// 
//     public String getDonorName() {
//         return donorName;
//     }
// 
//     public void setDonorName(String donorName) {
//         this.donorName = donorName;
//     }
// 
//     public Boolean getReceiptRequested() {
//         return receiptRequested;
//     }
// 
//     public void setReceiptRequested(Boolean receiptRequested) {
//         this.receiptRequested = receiptRequested;
//     }
// 
//     public Status getStatus() {
//         return status;
//     }
// 
//     public void setStatus(Status status) {
//         this.status = status;
//     }
// 
//     public Account getAccount() {
//         return account;
//     }
// 
//     public void setAccount(Account account) {
//         this.account = account;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Campaign getCampaign() {
//         return campaign;
//     }
// 
//     public void setCampaign(Campaign campaign) {
//         this.campaign = campaign;
//     }
// }


// Path: my-aktion-monitor/src/main/java/de/dpunkt/myaktion/monitor/DonationEncoder.java
import de.dpunkt.myaktion.model.Donation;
import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
import java.text.NumberFormat;

package de.dpunkt.myaktion.monitor;



public class DonationEncoder implements Encoder.Text<Donation> {
    @Override
    public String encode(Donation donation) {
        NumberFormat format = NumberFormat.getCurrencyInstance();
        String amount = format.format(donation.getAmount());
        Object args[] = {donation.getDonorName(), amount};
        return String.format("%s hat %s gespendet.", args);
    }

    @Override
    public void destroy() {
    }

    @Override
    public void init(EndpointConfig arg0) {