/*
* Copyright 2017 MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* 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.bson.codecs.pojo.entities;
import org.bson.codecs.pojo.annotations.Discriminator;
import org.bson.codecs.pojo.annotations.Id;
import org.bson.codecs.pojo.annotations.Property;
@Discriminator(value = "AnnotatedConventionModel", key = "_cls")
public final class ConventionModel {
private static final int myStaticField = 10;
private transient int myTransientField = 10;
private final int myFinalField = 10;
private int myIntField = 10;
@Id()
private String customId;
@Property(useDiscriminator = false)
private ConventionModel child;
@Property(name = "model", useDiscriminator = false)
private SimpleModel simpleModel;
public ConventionModel(){
}
public ConventionModel(final String customId, final ConventionModel child, final SimpleModel simpleModel) {
this.myTransientField = myTransientField;
this.myIntField = myIntField;
this.customId = customId;
this.child = child;
this.simpleModel = simpleModel;
}
public int getMyIntField() {
return myIntField;
}
public void setMyIntField(final int myIntField) {
this.myIntField = myIntField;
}
public static int getMyStaticField() {
return myStaticField;
}
public int getMyFinalField() {
return myFinalField;
}
public int getMyTransientField() {
return myTransientField;
}
public void setMyTransientField(final int myTransientField) {
this.myTransientField = myTransientField;
}
public String getCustomId() {
return customId;
}
public void setCustomId(final String customId) {
this.customId = customId;
}
public ConventionModel getChild() {
return child;
}
public void setChild(final ConventionModel child) {
this.child = child;
}
public SimpleModel getSimpleModel() {
return simpleModel;
}
public void setSimpleModel(final SimpleModel simpleModel) {
this.simpleModel = simpleModel;
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ConventionModel that = (ConventionModel) o;
if (getCustomId() != null ? !getCustomId().equals(that.getCustomId()) : that.getCustomId() != null) {
return false;
}
if (getChild() != null ? !getChild().equals(that.getChild()) : that.getChild() != null) {
return false;
}
if (getSimpleModel() != null ? !getSimpleModel().equals(that.getSimpleModel()) : that.getSimpleModel() != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = getCustomId() != null ? getCustomId().hashCode() : 0;
result = 31 * result + (getChild() != null ? getChild().hashCode() : 0);
result = 31 * result + (getSimpleModel() != null ? getSimpleModel().hashCode() : 0);
return result;
}
@Override
public String toString() {
return "ConventionModel{"
+ "customId='" + customId + "'"
+ ", child=" + child
+ ", simpleModel=" + simpleModel
+ "}";
}
}