Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2005-2008 Whirlwind Match Limited. All rights reserved. This is open source software; you can use, redistribute and/or modify it under the terms of the Open Software Licence v 3.0 as published by the Open Source Initiative. You should have received a copy of the Open Software Licence along with this application. if not, contact the Open Source Initiative (www.opensource.org) /
 
 package org.fuzzydb.attrs.layout;
 
 
 
 
 public class EnumExclConstraintCodec extends LayoutConstraintCodec {
 
 	private static final int ENUM_VALUES_LENGTH = (. + 7) / 32;
 
 
 	public static final int LENGTH = ;
 
 
 	private static EnumExclConstraintCodec instance = null;
 	
 	public static synchronized EnumExclConstraintCodec getInstance() {
 		if ( == null) {
 		}
 		return ;
 	}
 
 	
 
 	public void encode(LayoutAttrMap<IAttributeConstraintmapint attrIdObject value) {
 		int index = map.getIndexForIntsWrite(attrId);
 
 		
 		if (constraint.isIncludesNotSpecified()){
 		}
 
 		long word = constraint.getBitSet().getWord();
 		if ( == 1){
 			int bits = (int) (word & 0xFFFFFFFFL); // FIXME: Does this (cast) work properly on if bit 31 is set! (sign bit)
 			map.getInts()[index] = bits;
 //		} else if (ENUM_VALUES_LENGTH == 2){
 //			long bitfield = (words.length == 0 ? 0 : words[0]);
 //			map.getInts()[index] = (int) (bitfield & 0xffffffffL); // FIXME: I don't trust the sign bits here needs testing
 //			map.getInts()[index + 1] = (int) (bitfield >>> 32);
 //			
 		} else {
 			throw new RuntimeException"Unsupported Enum size");
 		}
 	}
 	
 	
 
 		int index = map.getIndexQuick(attrId);
 		boolean inclNS = ((LayoutConstraintMapmap).getIncludesNotSpecified(attrId);
 
 		long bits = getBits(map.getInts(), index);
 		
 		return new EnumExclusiveConstraintattrId, (short)-1, bitsinclNS );
 	}
 	
 	public static long getBits(int[] intsint index) {
 		if ( == 1){
 			return ints[index];
 //		} else if (ENUM_VALUES_LENGTH == 2){
 //			long word = ints[index + 1];
 //			word = (word << 32) | ints[index];
 //			return word;
 		} else {
 			throw new RuntimeException"Unsupported Enum size");
 		}
 	}
 	
 	protected boolean expandInternal(LayoutConstraintMap mapIAttribute attrint attrId) {
 
 		/* Needs to implement to following:
 					if (!bits.get(v.getEnumIndex())) {
 						bits.set(v.getEnumIndex());
 						return true;
 					}
 					return false;
 		*/
 		
		int index = map.getIndexQuick(attrId);
		int ints[] = map.getInts();
		int enumIndex = v.getEnumIndex();
		if ( bitIsSetints[index], enumIndex) ){
			return false;
		}
		ints[index] |= 1 << enumIndex
		return true;
	}
	private boolean bitIsSet(int iint index) {
		return (i & (1 << index)) != 0;
	}
New to GrepCode? Check out our FAQ X