/* This file is part of the db4o object database http://www.db4o.com Copyright (C) 2004 - 2011 Versant Corporation http://www.versant.com db4o is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation. db4o is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ package com.db4o.internal.marshall; import com.db4o.foundation.*; public class RawFieldSpec { private final AspectType _type; private final String _name; private final int _fieldTypeID; private final boolean _isPrimitive; private final boolean _isArray; private final boolean _isNArray; private final boolean _isVirtual; private int _indexID; public RawFieldSpec(AspectType aspectType, final String name, final int fieldTypeID, final byte attribs) { _type = aspectType; _name = name; _fieldTypeID = fieldTypeID; BitMap4 bitmap = new BitMap4(attribs); _isPrimitive = bitmap.isTrue(0); _isArray = bitmap.isTrue(1); _isNArray = bitmap.isTrue(2); _isVirtual=false; _indexID=0; } public RawFieldSpec(AspectType aspectType, final String name) { _type = aspectType; _name = name; _fieldTypeID = 0; _isPrimitive = false; _isArray = false; _isNArray = false; _isVirtual=true; _indexID=0; } public String name() { return _name; } public int fieldTypeID() { return _fieldTypeID; } public boolean isPrimitive() { return _isPrimitive; } public boolean isArray() { return _isArray; } public boolean isNArray() { return _isNArray; } public boolean isVirtual() { return _isVirtual; } public boolean isVirtualField() { return isVirtual() && isField(); } public boolean isField() { return _type.isField(); } public int indexID() { return _indexID; } void indexID(int indexID) { _indexID=indexID; } public String toString() { return "RawFieldSpec(" + name() + ")"; } public boolean isFieldMetadata() { return _type.isFieldMetadata(); } public boolean isTranslator() { return _type.isTranslator(); } }