/** * Internal method to get or create an instance of privilege bits for the * specified long value. * * @param bits A long value. * @return an instance of {@code PrivilegeBits} */ @NotNull private static PrivilegeBits getInstance(long bits) { if (bits == NO_PRIVILEGE) { return EMPTY; } else { checkArgument(bits > NO_PRIVILEGE); if (BUILT_IN_BITS != null) { String key = BUILT_IN_BITS.get(bits); if (key != null) { return BUILT_IN.get(key); } } return new PrivilegeBits(new UnmodifiableData(bits)); } }
@Override Data next() { if (this == EMPTY) { return EMPTY; } else if (isSimple) { if (bits < MAX) { long b = bits << 1; return new UnmodifiableData(b); } else { return new UnmodifiableData(new long[]{bits}).next(); } } else { long[] bts; long last = bitsArr[bitsArr.length - 1]; if (last < MAX) { bts = new long[bitsArr.length]; System.arraycopy(bitsArr, 0, bts, 0, bitsArr.length); bts[bts.length - 1] = last << 1; } else { bts = new long[bitsArr.length + 1]; bts[bts.length - 1] = 1; } return new UnmodifiableData(bts); } }
@Override Data next() { if (this == EMPTY) { return EMPTY; } else if (isSimple) { if (bits < MAX) { long b = bits << 1; return new UnmodifiableData(b); } else { return new UnmodifiableData(new long[]{bits}).next(); } } else { long[] bts; long last = bitsArr[bitsArr.length - 1]; if (last < MAX) { bts = new long[bitsArr.length]; System.arraycopy(bitsArr, 0, bts, 0, bitsArr.length); bts[bts.length - 1] = last << 1; } else { bts = new long[bitsArr.length + 1]; bts[bts.length - 1] = 1; } return new UnmodifiableData(bts); } }
/** * Internal method to get or create an instance of privilege bits for the * specified long value. * * @param bits A long value. * @return an instance of {@code PrivilegeBits} */ @Nonnull private static PrivilegeBits getInstance(long bits) { if (bits == NO_PRIVILEGE) { return EMPTY; } else { checkArgument(bits > NO_PRIVILEGE); return new PrivilegeBits(new UnmodifiableData(bits)); } }
/** * Internal method to create a new instance of {@code PrivilegeBits}. * * @param bits A long array. * @return an instance of {@code PrivilegeBits} */ @Nonnull private static PrivilegeBits getInstance(long[] bits) { return new PrivilegeBits(new UnmodifiableData(bits)); }
/** * Internal method to create a new instance of {@code PrivilegeBits}. * * @param bits A long array. * @return an instance of {@code PrivilegeBits} */ @NotNull private static PrivilegeBits getInstance(long[] bits) { return new PrivilegeBits(new UnmodifiableData(bits)); }