|
15 | 15 | */ |
16 | 16 | package org.lmdbjava; |
17 | 17 |
|
| 18 | +import java.nio.file.Path; |
18 | 19 | import java.util.Collection; |
19 | | -import java.util.EnumSet; |
20 | 20 | import java.util.Objects; |
21 | 21 |
|
| 22 | +/** An immutable set of flags for use when performing a {@link Env#copy(Path, CopyFlagSet)}. */ |
22 | 23 | public interface CopyFlagSet extends FlagSet<CopyFlags> { |
23 | 24 |
|
| 25 | + /** |
| 26 | + * An immutable empty {@link CopyFlagSet}. |
| 27 | + */ |
24 | 28 | CopyFlagSet EMPTY = CopyFlagSetImpl.EMPTY; |
25 | 29 |
|
| 30 | + /** |
| 31 | + * Gets the immutable empty {@link CopyFlagSet} instance. |
| 32 | + * @return The immutable empty {@link CopyFlagSet} instance. |
| 33 | + */ |
26 | 34 | static CopyFlagSet empty() { |
27 | 35 | return CopyFlagSetImpl.EMPTY; |
28 | 36 | } |
29 | 37 |
|
30 | | - static CopyFlagSet of(final CopyFlags dbiFlag) { |
31 | | - Objects.requireNonNull(dbiFlag); |
32 | | - return dbiFlag; |
| 38 | + /** |
| 39 | + * Creates an immutable {@link CopyFlagSet} containing copyFlag. |
| 40 | + * @param copyFlag The flag to include in the {@link CopyFlagSet} |
| 41 | + * @return An immutable {@link CopyFlagSet} containing just copyFlag. |
| 42 | + */ |
| 43 | + static CopyFlagSet of(final CopyFlags copyFlag) { |
| 44 | + Objects.requireNonNull(copyFlag); |
| 45 | + return copyFlag; |
33 | 46 | } |
34 | 47 |
|
35 | | - static CopyFlagSet of(final CopyFlags... CopyFlags) { |
36 | | - return builder().setFlags(CopyFlags).build(); |
| 48 | + /** |
| 49 | + * Creates an immutable {@link CopyFlagSet} containing copyFlags. |
| 50 | + * @param copyFlags The flags to include in the {@link CopyFlagSet}. |
| 51 | + * @return An immutable {@link CopyFlagSet} containing copyFlags. |
| 52 | + */ |
| 53 | + static CopyFlagSet of(final CopyFlags... copyFlags) { |
| 54 | + return builder().setFlags(copyFlags).build(); |
37 | 55 | } |
38 | 56 |
|
39 | | - static CopyFlagSet of(final Collection<CopyFlags> CopyFlags) { |
40 | | - return builder().setFlags(CopyFlags).build(); |
| 57 | + /** |
| 58 | + * Creates an immutable {@link CopyFlagSet} containing copyFlags. |
| 59 | + * @param copyFlags The flags to include in the {@link CopyFlagSet}. |
| 60 | + * @return An immutable {@link CopyFlagSet} containing copyFlags. |
| 61 | + */ |
| 62 | + static CopyFlagSet of(final Collection<CopyFlags> copyFlags) { |
| 63 | + return builder().setFlags(copyFlags).build(); |
41 | 64 | } |
42 | 65 |
|
| 66 | + /** |
| 67 | + * Create a builder for building an {@link CopyFlagSet}. |
| 68 | + * @return A builder instance for building an {@link CopyFlagSet}. |
| 69 | + */ |
43 | 70 | static AbstractFlagSet.Builder<CopyFlags, CopyFlagSet> builder() { |
44 | 71 | return new AbstractFlagSet.Builder<>( |
45 | 72 | CopyFlags.class, CopyFlagSetImpl::new, copyFlag -> copyFlag, () -> CopyFlagSetImpl.EMPTY); |
46 | 73 | } |
47 | | - |
48 | | - class CopyFlagSetImpl extends AbstractFlagSet<CopyFlags> implements CopyFlagSet { |
49 | | - |
50 | | - static final CopyFlagSet EMPTY = new EmptyCopyFlagSet(); |
51 | | - |
52 | | - private CopyFlagSetImpl(final EnumSet<CopyFlags> flags) { |
53 | | - super(flags); |
54 | | - } |
55 | | - } |
56 | | - |
57 | | - class EmptyCopyFlagSet extends AbstractFlagSet.AbstractEmptyFlagSet<CopyFlags> |
58 | | - implements CopyFlagSet {} |
59 | 74 | } |
0 commit comments