This project has retired. For details please refer to its Attic page.
PrimitiveIdTypeOps xref
View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.giraph.types.ops;
19  
20  import org.apache.giraph.types.ops.collections.Basic2ObjectMap;
21  import org.apache.giraph.types.ops.collections.BasicSet;
22  import org.apache.giraph.types.ops.collections.WritableWriter;
23  
24  
25  
26  /**
27   * Additional type operations to TypeOps for types that can be IDs,
28   * and so can be used as keys in maps and values in sets.
29   *
30   * Using any of the provided operations should lead to no boxing/unboxing.
31   *
32   * Useful generic wrappers to fastutil libraries are provided,
33   * so that you can look at them generically.
34   *
35   * @param <T> Type
36   */
37  public interface PrimitiveIdTypeOps<T> extends PrimitiveTypeOps<T> {
38    // primitive collections
39  
40    /**
41     * Create BasicSet of type T.
42     * @return BasicSet
43     */
44    BasicSet<T> createOpenHashSet();
45  
46    /**
47     * Create BasicSet of type T, given capacity.
48     * @param capacity Capacity
49     * @return BasicSet
50     */
51    BasicSet<T> createOpenHashSet(long capacity);
52  
53    /**
54     * Create Basic2ObjectMap with key type T.
55     * Values are represented as object, even if they can be primitive.
56     *
57     * You can pass null as valueWriter,
58     * but readFields/write will throw an Exception, if called.
59     *
60     * @param valueWriter Writer of values
61     * @param <V> Type of values in the map
62     * @return Basic2ObjectMap
63     */
64    <V> Basic2ObjectMap<T, V> create2ObjectOpenHashMap(
65        WritableWriter<V> valueWriter);
66  
67    /**
68     * Create Basic2ObjectMap with key type T, given capacity.
69     * Values are represented as object, even if they can be primitive.
70     *
71     * You can pass null as valueWriter,
72     * but readFields/write will throw an Exception, if called.
73     *
74     * @param capacity Capacity
75     * @param valueWriter Writer of values
76     * @param <V> Type of values in the map
77     * @return Basic2ObjectMap
78     */
79    <V> Basic2ObjectMap<T, V> create2ObjectOpenHashMap(
80        int capacity, WritableWriter<V> valueWriter);
81  }