All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gs2.formation.model.Form Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2016 Game Server Services, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * or in the "license" file accompanying this file. This file 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 io.gs2.formation.model;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import io.gs2.core.model.IModel;


@SuppressWarnings("serial")
@JsonIgnoreProperties(ignoreUnknown=true)
public class Form implements IModel, Serializable, Comparable
{ private String formId; private String name; private Integer index; private List slots; private Long createdAt; private Long updatedAt; private Long revision; public String getFormId() { return formId; } public void setFormId(String formId) { this.formId = formId; } public Form withFormId(String formId) { this.formId = formId; return this; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Form withName(String name) { this.name = name; return this; } public Integer getIndex() { return index; } public void setIndex(Integer index) { this.index = index; } public Form withIndex(Integer index) { this.index = index; return this; } public List getSlots() { return slots; } public void setSlots(List slots) { this.slots = slots; } public Form withSlots(List slots) { this.slots = slots; return this; } public Long getCreatedAt() { return createdAt; } public void setCreatedAt(Long createdAt) { this.createdAt = createdAt; } public Form withCreatedAt(Long createdAt) { this.createdAt = createdAt; return this; } public Long getUpdatedAt() { return updatedAt; } public void setUpdatedAt(Long updatedAt) { this.updatedAt = updatedAt; } public Form withUpdatedAt(Long updatedAt) { this.updatedAt = updatedAt; return this; } public Long getRevision() { return revision; } public void setRevision(Long revision) { this.revision = revision; } public Form withRevision(Long revision) { this.revision = revision; return this; } public static Form fromJson(JsonNode data) { if (data == null) { return null; } return new Form() .withFormId(data.get("formId") == null || data.get("formId").isNull() ? null : data.get("formId").asText()) .withName(data.get("name") == null || data.get("name").isNull() ? null : data.get("name").asText()) .withIndex(data.get("index") == null || data.get("index").isNull() ? null : data.get("index").intValue()) .withSlots(data.get("slots") == null || data.get("slots").isNull() ? new ArrayList() : StreamSupport.stream(Spliterators.spliteratorUnknownSize(data.get("slots").elements(), Spliterator.NONNULL), false).map(item -> { //noinspection Convert2MethodRef return Slot.fromJson(item); } ).collect(Collectors.toList())) .withCreatedAt(data.get("createdAt") == null || data.get("createdAt").isNull() ? null : data.get("createdAt").longValue()) .withUpdatedAt(data.get("updatedAt") == null || data.get("updatedAt").isNull() ? null : data.get("updatedAt").longValue()) .withRevision(data.get("revision") == null || data.get("revision").isNull() ? null : data.get("revision").longValue()); } public JsonNode toJson() { return new ObjectMapper().valueToTree( new HashMap() {{ put("formId", getFormId()); put("name", getName()); put("index", getIndex()); put("slots", getSlots() == null ? new ArrayList() : getSlots().stream().map(item -> { //noinspection Convert2MethodRef return item.toJson(); } ).collect(Collectors.toList())); put("createdAt", getCreatedAt()); put("updatedAt", getUpdatedAt()); put("revision", getRevision()); }} ); } @Override public int compareTo(Form o) { return formId.compareTo(o.formId); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((this.formId == null) ? 0 : this.formId.hashCode()); result = prime * result + ((this.name == null) ? 0 : this.name.hashCode()); result = prime * result + ((this.index == null) ? 0 : this.index.hashCode()); result = prime * result + ((this.slots == null) ? 0 : this.slots.hashCode()); result = prime * result + ((this.createdAt == null) ? 0 : this.createdAt.hashCode()); result = prime * result + ((this.updatedAt == null) ? 0 : this.updatedAt.hashCode()); result = prime * result + ((this.revision == null) ? 0 : this.revision.hashCode()); return result; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null) return false; if (getClass() != o.getClass()) return false; Form other = (Form) o; if (formId == null) { return other.formId == null; } else if (!formId.equals(other.formId)) { return false; } if (name == null) { return other.name == null; } else if (!name.equals(other.name)) { return false; } if (index == null) { return other.index == null; } else if (!index.equals(other.index)) { return false; } if (slots == null) { return other.slots == null; } else if (!slots.equals(other.slots)) { return false; } if (createdAt == null) { return other.createdAt == null; } else if (!createdAt.equals(other.createdAt)) { return false; } if (updatedAt == null) { return other.updatedAt == null; } else if (!updatedAt.equals(other.updatedAt)) { return false; } if (revision == null) { return other.revision == null; } else if (!revision.equals(other.revision)) { return false; } return true; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy