فهرست منبع

Bitmask - rename

Ranides Atterwim 10 سال پیش
والد
کامیت
dcaf6e89f8

+ 7 - 8
assira/src/main/java/net/ranides/assira/generic/BitMaskFactory.java

@@ -4,7 +4,7 @@
  * @license WTFPL
  * @url http://ranides.net/projects/assira
  */
-package net.ranides.assira.generic;
+package net.ranides.assira.collection.sets;
 
 import java.util.AbstractSet;
 import java.util.Iterator;
@@ -16,9 +16,8 @@ import net.ranides.assira.collection.arrays.ArrayUtils;
 /**
  *
  * @author Ranides Atterwim <ranides@gmail.com>
- * // @todo (assira #1) BitMaskFactory: rename i repackage
  */
-public class BitMaskFactory<T> {
+public class Bitmask<T> {
     
     private static final String NO_ELEMENT = "Stored value can't be mapped to any constant: ";
     
@@ -28,7 +27,7 @@ public class BitMaskFactory<T> {
     final Class<?> type;
 
     @SuppressWarnings("PMD.ArrayIsStoredDirectly")
-    public BitMaskFactory(T[] universe, ToIntFunction<T> function) {
+    public Bitmask(T[] universe, ToIntFunction<T> function) {
         this.universe = ArrayUtils.copy(universe);
         this.function = function;
         this.type = universe[0].getClass();
@@ -40,11 +39,11 @@ public class BitMaskFactory<T> {
     }
     
     @SafeVarargs
-    public final Set<T> constantOf(T... values) {
+    public final Set<T> constant(T... values) {
         return new CSet(mask(values));
     }
     
-    public final Set<T> constantOf(int value) {
+    public final Set<T> constant(int value) {
         if(value != (value & usedbits)) {
             throw new IllegalArgumentException(NO_ELEMENT + Integer.toHexString(value));
         }
@@ -52,11 +51,11 @@ public class BitMaskFactory<T> {
     }
     
     @SafeVarargs
-    public final Set<T> valueOf(T... values) {
+    public final Set<T> collect(T... values) {
         return new VSet(mask(values));
     }
     
-    public Set<T> valueOf(int value) {
+    public Set<T> collect(int value) {
         if(value != (value & usedbits)) {
             throw new IllegalArgumentException(NO_ELEMENT + Integer.toHexString(value));
         }

+ 20 - 23
assira/src/main/java/net/ranides/assira/reflection/IAttribute.java

@@ -11,7 +11,7 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Parameter;
 import java.util.Set;
-import net.ranides.assira.generic.BitMaskFactory;
+import net.ranides.assira.collection.sets.Bitmask;
 
 /**
  *
@@ -71,7 +71,7 @@ public enum IAttribute {
     
     private static final int ACCESS_ANY = Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE;
     
-    private static final BitMaskFactory<IAttribute> MAP = new BitMaskFactory<>(IAttribute.values(), a -> a.mask);
+    private static final Bitmask<IAttribute> MAP = new Bitmask<>(IAttribute.values(), a -> a.mask);
     
     private final int mask;
 
@@ -79,23 +79,23 @@ public enum IAttribute {
         this.mask = mask;
     }
     
-    public static Set<IAttribute> constantOf(IAttribute... attrs) {
-        return MAP.constantOf(attrs);
+    public static Set<IAttribute> constant(IAttribute... attrs) {
+        return MAP.constant(attrs);
     }
     
-    public static Set<IAttribute> valueOf(IAttribute... attrs) {
-        return MAP.valueOf(attrs);
+    public static Set<IAttribute> collect(IAttribute... attrs) {
+        return MAP.collect(attrs);
     }
     
-    public static Set<IAttribute> valueOf(Field field) {
+    public static Set<IAttribute> resolve(Field field) {
         int mask = getModifiers(field.getModifiers());
         if(!(field.getGenericType() instanceof Class)) {
             mask |= PARAMETERIZED.mask;
         }
-        return MAP.valueOf(mask);
+        return MAP.collect(mask);
     }
     
-    public static Set<IAttribute> valueOf(Executable method) {
+    public static Set<IAttribute> resolve(Executable method) {
         int mask = getModifiers(method.getModifiers());
         if( 0 != ((M_BRIDGE|M_VARARGS) & mask) ) {
             mask |= (0 != (mask & M_BRIDGE)) ? BRIDGE.mask : 0;
@@ -105,34 +105,31 @@ public enum IAttribute {
         if( 0 != method.getTypeParameters().length ) {
             mask |= PARAMETERIZED.mask;
         }
-        return MAP.valueOf(mask);
+        return MAP.collect(mask);
     }
     
-    public static Set<IAttribute> valueOf(Parameter param) {
+    public static Set<IAttribute> resolve(Parameter param) {
         int mask = getModifiers(param.getModifiers());
         if(!(param.getParameterizedType() instanceof Class)) {
             mask |= PARAMETERIZED.mask;
         }
-        return MAP.valueOf(mask);
+        return MAP.collect(mask);
     }
     
-    private static int getModifiers(int mask) {
-        mask |= DECLARED.mask;
-        if( 0 == (mask & ACCESS_ANY)) {
-            mask |= PACKAGE.mask;
+    public static Set<IAttribute> resolve(Class<?> type) {
+        int mask = getModifiers(type.getModifiers());
+        if( 0 != type.getTypeParameters().length) {
+            mask |= PARAMETERIZED.mask;
         }
-        return mask;
+        return MAP.collect(mask);
     }
     
-    public static Set<IAttribute> valueOf(Class<?> type) {
-        int mask = DECLARED.mask | type.getModifiers();
+    private static int getModifiers(int mask) {
+        mask |= DECLARED.mask;
         if( 0 == (mask & ACCESS_ANY)) {
             mask |= PACKAGE.mask;
         }
-        if( 0 != type.getTypeParameters().length) {
-            mask |= PARAMETERIZED.mask;
-        }
-        return MAP.valueOf(mask);
+        return mask;
     }
     
 }

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/AClass.java

@@ -21,7 +21,7 @@ public class AClass implements IClass {
     
     public static final IClass NULL = new AClass();
     
-    public static final Set<IAttribute> ATTRS = IAttribute.constantOf(IAttribute.FINAL, IAttribute.NATIVE, IAttribute.PUBLIC);
+    public static final Set<IAttribute> ATTRS = IAttribute.constant(IAttribute.FINAL, IAttribute.NATIVE, IAttribute.PUBLIC);
     
     protected AClass() {
         // do nothing

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/AHints.java

@@ -30,7 +30,7 @@ public class AHints implements IHints {
     }
     
     AHints() {
-        this(IAttribute.valueOf(),IAttribute.valueOf());
+        this(IAttribute.collect(),IAttribute.collect());
     }
 
     @Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RArgument.java

@@ -58,7 +58,7 @@ public class RArgument implements IArgument {
 
     @Override
     public Set<IAttribute> attributes() {
-        return IAttribute.valueOf(param);
+        return IAttribute.resolve(param);
     }
 
     @Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RClass.java

@@ -139,7 +139,7 @@ public class RClass extends AClass {
 
     @Override
     public final Set<IAttribute> attributes() {
-        return IAttribute.valueOf(type);
+        return IAttribute.resolve(type);
     }
 
     @Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RConstructor.java

@@ -118,7 +118,7 @@ public final class RConstructor extends AMethod implements IMethod {
 
 	@Override
 	public Set<IAttribute> attributes() {
-        return IAttribute.valueOf(method);
+        return IAttribute.resolve(method);
 	}
 
 	@Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RField.java

@@ -104,7 +104,7 @@ public class RField implements IField {
 
     @Override
     public Set<IAttribute> attributes() {
-        return IAttribute.valueOf(field);
+        return IAttribute.resolve(field);
     }
 
     @Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RMethod.java

@@ -131,7 +131,7 @@ public final class RMethod extends AMethod implements IMethod {
 
 	@Override
 	public Set<IAttribute> attributes() {
-        return IAttribute.valueOf(method);
+        return IAttribute.resolve(method);
 	}
 
 	@Override

+ 1 - 1
assira/src/main/java/net/ranides/assira/reflection/impl/RWClass.java

@@ -25,7 +25,7 @@ import net.ranides.assira.reflection.*;
  */
 public class RWClass extends AClass {
     
-    private static final Set<IAttribute> WATTRS = IAttribute.constantOf(IAttribute.PUBLIC);
+    private static final Set<IAttribute> WATTRS = IAttribute.constant(IAttribute.PUBLIC);
     
     private static final IClass[] EMPTY = new IClass[0];
 

+ 6 - 6
assira/src/test/java/net/ranides/assira/reflection/GenericAttributeTest.java

@@ -19,16 +19,16 @@ public class GenericAttributeTest {
     
     @Test
     public void testType() {
-        assertEquals(valueOf(DECLARED, PUBLIC), valueOf(ForClassTraits.PUBLIC));
-        assertEquals(valueOf(DECLARED, PRIVATE), valueOf(ForClassTraits.PRIVATE));
-        assertEquals(valueOf(DECLARED, PACKAGE, STATIC, ABSTRACT, INTERFACE), valueOf(ForClassTraits.INTERFACE));
-        assertEquals(valueOf(DECLARED, PACKAGE, FINAL), valueOf(ForClassTraits.FINAL));
+        assertEquals(collect(DECLARED, PUBLIC), resolve(ForClassTraits.PUBLIC));
+        assertEquals(collect(DECLARED, PRIVATE), resolve(ForClassTraits.PRIVATE));
+        assertEquals(collect(DECLARED, PACKAGE, STATIC, ABSTRACT, INTERFACE), resolve(ForClassTraits.INTERFACE));
+        assertEquals(collect(DECLARED, PACKAGE, FINAL), resolve(ForClassTraits.FINAL));
     }
     
     @Test
     public void testTypeParameterized() {
-        assertEquals(valueOf(DECLARED, PACKAGE, PARAMETERIZED), valueOf(ForClassTraits.PARAMS));
-        assertEquals(valueOf(DECLARED, PACKAGE), valueOf(ForClassTraits.NO_PARAMS));
+        assertEquals(collect(DECLARED, PACKAGE, PARAMETERIZED), resolve(ForClassTraits.PARAMS));
+        assertEquals(collect(DECLARED, PACKAGE), resolve(ForClassTraits.NO_PARAMS));
     }
     
 }