/**
* Copyright (C) 2010 Michael Mosmann <michael@mosmann.de>
*
* 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 de.flapdoodle.mongoom.testlab.datastore.beans;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Pattern;
import org.bson.types.Code;
import de.flapdoodle.mongoom.annotations.Entity;
import de.flapdoodle.mongoom.annotations.Id;
import de.flapdoodle.mongoom.types.Reference;
@Entity(value="NativeTypes")
public class NativeTypes {
@Id
Reference<NativeTypes> _id;
boolean _boval;
Boolean _bovalue;
byte[] _bavalue;
byte _bval;
Byte _bvalue;
short _sval;
Short _svalue;
int _ival;
Integer _ivalue;
long _lval;
Long _lvalue;
float _fval;
Float _fvalue;
double _dval;
Double _dvalue;
char _cval;
Character _cvalue;
String _val;
Date _dtvalue;
Pattern _pvalue;
Code _covalue;
public Reference<NativeTypes> getId() {
return _id;
}
public static NativeTypes withValues() {
NativeTypes ret = new NativeTypes();
ret._boval=false;
ret._bovalue=Boolean.TRUE;
ret._bval=12;
ret._bvalue=24;
ret._cval='a';
ret._cvalue='C';
ret._dval=1.1d;
ret._dvalue=2.2d;
ret._fval=1.2f;
ret._fvalue=2.4f;
ret._ival=123456;
ret._ivalue=2345678;
ret._lval=Long.MAX_VALUE;
ret._lvalue=Long.MIN_VALUE;
ret._sval=4321;
ret._svalue=8642;
ret._val="BluBla";
ret._dtvalue=new Date(0);
ret._bavalue=new byte[] {0x01,0x02,0x04,0x08};
ret._pvalue=Pattern.compile("a?a");
ret._covalue=new Code("{/**/}");
return ret;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(_bavalue);
result = prime * result + (_boval
? 1231
: 1237);
result = prime * result + ((_bovalue == null)
? 0
: _bovalue.hashCode());
result = prime * result + _bval;
result = prime * result + ((_bvalue == null)
? 0
: _bvalue.hashCode());
result = prime * result + ((_covalue == null)
? 0
: _covalue.hashCode());
result = prime * result + _cval;
result = prime * result + ((_cvalue == null)
? 0
: _cvalue.hashCode());
result = prime * result + ((_dtvalue == null)
? 0
: _dtvalue.hashCode());
long temp;
temp = Double.doubleToLongBits(_dval);
result = prime * result + (int) (temp ^ (temp >>> 32));
result = prime * result + ((_dvalue == null)
? 0
: _dvalue.hashCode());
result = prime * result + Float.floatToIntBits(_fval);
result = prime * result + ((_fvalue == null)
? 0
: _fvalue.hashCode());
result = prime * result + ((_id == null)
? 0
: _id.hashCode());
result = prime * result + _ival;
result = prime * result + ((_ivalue == null)
? 0
: _ivalue.hashCode());
result = prime * result + (int) (_lval ^ (_lval >>> 32));
result = prime * result + ((_lvalue == null)
? 0
: _lvalue.hashCode());
// result = prime * result + ((_pvalue == null)
// ? 0
// : _pvalue.hashCode());
result = prime * result + _sval;
result = prime * result + ((_svalue == null)
? 0
: _svalue.hashCode());
result = prime * result + ((_val == null)
? 0
: _val.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;
NativeTypes other = (NativeTypes) obj;
if (!Arrays.equals(_bavalue, other._bavalue))
return false;
if (_boval != other._boval)
return false;
if (_bovalue == null) {
if (other._bovalue != null)
return false;
} else if (!_bovalue.equals(other._bovalue))
return false;
if (_bval != other._bval)
return false;
if (_bvalue == null) {
if (other._bvalue != null)
return false;
} else if (!_bvalue.equals(other._bvalue))
return false;
if (_covalue == null) {
if (other._covalue != null)
return false;
} else if (!_covalue.equals(other._covalue))
return false;
if (_cval != other._cval)
return false;
if (_cvalue == null) {
if (other._cvalue != null)
return false;
} else if (!_cvalue.equals(other._cvalue))
return false;
if (_dtvalue == null) {
if (other._dtvalue != null)
return false;
} else if (!_dtvalue.equals(other._dtvalue))
return false;
if (Double.doubleToLongBits(_dval) != Double.doubleToLongBits(other._dval))
return false;
if (_dvalue == null) {
if (other._dvalue != null)
return false;
} else if (!_dvalue.equals(other._dvalue))
return false;
if (Float.floatToIntBits(_fval) != Float.floatToIntBits(other._fval))
return false;
if (_fvalue == null) {
if (other._fvalue != null)
return false;
} else if (!_fvalue.equals(other._fvalue))
return false;
if (_id == null) {
if (other._id != null)
return false;
} else if (!_id.equals(other._id))
return false;
if (_ival != other._ival)
return false;
if (_ivalue == null) {
if (other._ivalue != null)
return false;
} else if (!_ivalue.equals(other._ivalue))
return false;
if (_lval != other._lval)
return false;
if (_lvalue == null) {
if (other._lvalue != null)
return false;
} else if (!_lvalue.equals(other._lvalue))
return false;
if (_pvalue == null) {
if (other._pvalue != null)
return false;
} else if (!comparePattern(other))
return false;
if (_sval != other._sval)
return false;
if (_svalue == null) {
if (other._svalue != null)
return false;
} else if (!_svalue.equals(other._svalue))
return false;
if (_val == null) {
if (other._val != null)
return false;
} else if (!_val.equals(other._val))
return false;
return true;
}
private boolean comparePattern(NativeTypes other) {
return _pvalue.pattern().equals(other._pvalue.pattern()) && _pvalue.flags()==other._pvalue.flags();
}
}