FileDocCategorySizeDatePackage
BitMaskTextProp.javaAPI DocApache Poi 3.0.13366Sun Mar 11 12:59:30 GMT 2007org.apache.poi.hslf.model.textproperties

BitMaskTextProp

public class BitMaskTextProp extends TextProp implements Cloneable
Definition of a special kind of property of some text, or its paragraph. For these properties, a flag in the "contains" header field tells you the data property family will exist. The value of the property is itself a mask, encoding several different (but related) properties

Fields Summary
private String[]
subPropNames
private int[]
subPropMasks
private boolean[]
subPropMatches
Constructors Summary
public BitMaskTextProp(int sizeOfDataBlock, int maskInHeader, String overallName, String[] subPropNames)

		super(sizeOfDataBlock,maskInHeader,"bitmask");
		this.subPropNames = subPropNames;
		this.propName = overallName;
		subPropMasks = new int[subPropNames.length];
		subPropMatches = new boolean[subPropNames.length];
		
		// Initialise the masks list
		for(int i=0; i<subPropMasks.length; i++) {
			subPropMasks[i] = (1 << i);
		}
	
Methods Summary
public java.lang.Objectclone()

		BitMaskTextProp newObj = (BitMaskTextProp)super.clone();
		
		// Don't carry over matches, but keep everything 
		//  else as it was
		newObj.subPropMatches = new boolean[subPropMatches.length];
		
		return newObj;
	
public boolean[]getSubPropMatches()
Fetch the list of if the sub properties match or not

 return subPropMatches; 
public java.lang.String[]getSubPropNames()
Fetch the list of the names of the sub properties

 return subPropNames; 
public booleangetSubValue(int idx)
Fetch the true/false status of the subproperty with the given index

		return subPropMatches[idx];
	
public intgetWriteMask()
As we're purely mask based, just set flags for stuff that is set

		return dataValue;
	
public voidsetSubValue(boolean value, int idx)
Set the true/false status of the subproperty with the given index

		if(subPropMatches[idx] == value) { return; }
		if(value) {
			dataValue += subPropMasks[idx];
		} else {
			dataValue -= subPropMasks[idx];
		}
		subPropMatches[idx] = value;
	
public voidsetValue(int val)
Set the value of the text property, and recompute the sub properties based on it

 
		dataValue = val;

		// Figure out the values of the sub properties
		for(int i=0; i< subPropMatches.length; i++) {
			subPropMatches[i] = false;
			if((dataValue & subPropMasks[i]) != 0) {
				subPropMatches[i] = true;
			}
		}