/*
* Copyright (C) 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.
* 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.jboss.errai.marshalling.tests.res;
import org.jboss.errai.common.client.api.annotations.Portable;
/**
* A portable entity class that contains multiple references to the same two
* enum types.
*
* @author Jonathan Fuerth <jfuerth@gmail.com>
*/
@Portable
public class EnumContainer {
private EnumTestA enumA1;
private EnumTestA enumA2;
private EnumTestA enumA3;
private EnumWithState statefulEnum1;
private EnumWithState statefulEnum2;
private EnumWithState statefulEnum3;
public EnumTestA getEnumA1() {
return enumA1;
}
public EnumTestA getEnumA2() {
return enumA2;
}
public EnumTestA getEnumA3() {
return enumA3;
}
public EnumWithState getStatefulEnum1() {
return statefulEnum1;
}
public EnumWithState getStatefulEnum2() {
return statefulEnum2;
}
public EnumWithState getStatefulEnum3() {
return statefulEnum3;
}
public void setEnumA1(EnumTestA enumA1) {
this.enumA1 = enumA1;
}
public void setEnumA2(EnumTestA enumA2) {
this.enumA2 = enumA2;
}
public void setEnumA3(EnumTestA enumA3) {
this.enumA3 = enumA3;
}
public void setStatefulEnum1(EnumWithState statefulEnum1) {
this.statefulEnum1 = statefulEnum1;
}
public void setStatefulEnum2(EnumWithState statefulEnum2) {
this.statefulEnum2 = statefulEnum2;
}
public void setStatefulEnum3(EnumWithState statefulEnum3) {
this.statefulEnum3 = statefulEnum3;
}
@Override
public String toString() {
return "EnumContainer [enumA1=" + enumA1 + ", enumA2=" + enumA2
+ ", enumA3=" + enumA3 + ", statefulEnum1=" + statefulEnum1
+ ", statefulEnum2=" + statefulEnum2 + ", statefulEnum3="
+ statefulEnum3 + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((enumA1 == null) ? 0 : enumA1.hashCode());
result = prime * result + ((enumA2 == null) ? 0 : enumA2.hashCode());
result = prime * result + ((enumA3 == null) ? 0 : enumA3.hashCode());
result = prime * result
+ ((statefulEnum1 == null) ? 0 : statefulEnum1.hashCode());
result = prime * result
+ ((statefulEnum2 == null) ? 0 : statefulEnum2.hashCode());
result = prime * result
+ ((statefulEnum3 == null) ? 0 : statefulEnum3.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
EnumContainer other = (EnumContainer) obj;
if (enumA1 != other.enumA1)
return false;
if (enumA2 != other.enumA2)
return false;
if (enumA3 != other.enumA3)
return false;
if (statefulEnum1 != other.statefulEnum1)
return false;
if (statefulEnum2 != other.statefulEnum2)
return false;
if (statefulEnum3 != other.statefulEnum3)
return false;
return true;
}
}