public boolean isExportingFeature(Class<? extends Feature> featureClass) { SparseArray<Class<? extends Feature>> decoder = Manager.getNodeFeatures( getTypeId()); long advertiseBitMask = getAdvertiseBitMask(); for (int i = 0 ; i< decoder.size(); i++){ if(featureClass == decoder.valueAt(i)){ long mask = decoder.keyAt(i); if((advertiseBitMask & mask) != 0) return true; } } return false; }
private static Set<Feature> buildFeatureSet(Node node, long featureMask){ Set<Feature> outList = new HashSet<>(32); SparseArray<Class<? extends Feature>> featureMap = Manager.getNodeFeatures(node.getTypeId()); long mask= 1L<<31; //1<<31 //we test all the 32bit of the feature mask for(int i=0; i<32; i++ ) { if ((featureMask & mask) != 0) { //if the bit is up Class<? extends Feature> featureClass = featureMap.get((int)mask); if(featureClass!=null) { Feature f = node.getFeature(featureClass); if(f!=null) outList.add(f); }//if featureClass }//if mask mask = mask>>1; }//for return outList; }
private static Set<Feature> buildFeatureSet(Node node, long featureMask){ Set<Feature> outList = new HashSet<>(32); SparseArray<Class<? extends Feature>> featureMap = Manager.getNodeFeatures(node.getTypeId()); long mask= 1L<<31; //1<<31 //we test all the 32bit of the feature mask for(int i=0; i<32; i++ ) { if ((featureMask & mask) != 0) { //if the bit is up Class<? extends Feature> featureClass = featureMap.get((int)mask); if(featureClass!=null) { Feature f = node.getFeature(featureClass); if(f!=null) outList.add(f); }//if featureClass }//if mask mask = mask>>1; }//for return outList; }
private long buildFeatureMask(Set<Feature> featureToLog){ SparseArray<Class<? extends Feature>> featureMap = Manager.getNodeFeatures(getParentNode().getTypeId()); long logMask =0; for (Feature feature : featureToLog){ logMask |= getFeatureMaskForClass(feature.getClass(),featureMap); } return logMask; }
private Node createNodeWithFeatureMask(int featueMask){ Node node = mock(Node.class); when(node.getTypeId()).thenReturn((byte)0); when(node.getAdvertiseBitMask()).thenReturn(featueMask); return node; }