/* | |
* Copyright 2009-2011 by The Regents of the University of California | |
* 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 from | |
* | |
* 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 edu.uci.ics.asterix.om.base; | |
import edu.uci.ics.asterix.common.exceptions.AsterixException; | |
import edu.uci.ics.asterix.om.types.BuiltinType; | |
import edu.uci.ics.asterix.om.types.IAType; | |
import edu.uci.ics.asterix.om.visitors.IOMVisitor; | |
public class AInt32 implements IAObject { | |
protected int value; | |
public AInt32(int value) { | |
super(); | |
this.value = value; | |
} | |
public AInt32(byte[] bytes, int offset, int length) { | |
value = valueFromBytes(bytes, offset, length); | |
} | |
public Integer getIntegerValue() { | |
return value; | |
} | |
@Override | |
public IAType getType() { | |
return BuiltinType.AINT32; | |
} | |
@Override | |
public String toString() { | |
return "AInt32: {" + value + "}"; | |
} | |
@Override | |
public boolean equals(Object obj) { | |
if (!(obj instanceof AInt32)) { | |
return false; | |
} else { | |
return value == (((AInt32) obj).getIntegerValue()); | |
} | |
} | |
@Override | |
public int hashCode() { | |
return value; | |
} | |
private static Integer valueFromBytes(byte[] bytes, int offset, int length) { | |
return ((bytes[offset] & 0xff) << 24) + ((bytes[offset + 1] & 0xff) << 16) + ((bytes[offset + 2] & 0xff) << 8) | |
+ ((bytes[offset + 3] & 0xff) << 0); | |
} | |
public byte[] toBytes() { | |
return new byte[] { (byte) (value >>> 24), (byte) (value >> 16 & 0xff), (byte) (value >> 8 & 0xff), | |
(byte) (value & 0xff) }; | |
} | |
@Override | |
public void accept(IOMVisitor visitor) throws AsterixException { | |
visitor.visitAInt32(this); | |
} | |
@Override | |
public boolean deepEqual(IAObject obj) { | |
return equals(obj); | |
} | |
@Override | |
public int hash() { | |
return hashCode(); | |
} | |
} |