/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.server.api.model.instance; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "job-request-instance") public class JobRequestInstance { @XmlElement(name="job-command") private String command; @XmlElement(name="scheduled-date") private Date scheduledDate; @XmlElement(name="request-data") private Map<String, Object> data; public JobRequestInstance() { } public static Builder builder() { return new Builder(); } public String getCommand() { return command; } public void setCommand(String command) { this.command = command; } public Date getScheduledDate() { return scheduledDate; } public void setScheduledDate(Date scheduledDate) { this.scheduledDate = scheduledDate; } public Map<String, Object> getData() { if (this.data == null) { this.data = new HashMap<String, Object>(); } return this.data; } public void setData(Map<String, Object> data) { this.data = data; } @Override public String toString() { return "JobRequestInstance{" + "command='" + command + '\'' + ", scheduledDate=" + scheduledDate + ", data=" + data + '}'; } public static class Builder { private JobRequestInstance jobRequestInstance = new JobRequestInstance(); public JobRequestInstance build() { return jobRequestInstance; } public Builder command(String command) { jobRequestInstance.setCommand(command); return this; } public Builder scheduledDate(Date date) { jobRequestInstance.setScheduledDate(date == null ? date : new Date(date.getTime())); return this; } public Builder data(Map<String, Object> data) { jobRequestInstance.setData(data); return this; } } }