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,
13   *   software distributed under the License is distributed on an
14   *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *   KIND, either express or implied.  See the License for the
16   *   specific language governing permissions and limitations
17   *   under the License.
18   *
19   */
20  
21  package org.apache.directory.api.ldap.model.ldif.anonymizer;
22  
23  
24  import java.util.Map;
25  import java.util.Set;
26  
27  import org.apache.directory.api.ldap.model.entry.Attribute;
28  import org.apache.directory.api.ldap.model.entry.Value;
29  import org.apache.directory.api.ldap.model.schema.SchemaManager;
30  
31  
32  /**
33   * An interface for Anonymizers.
34   * 
35   * @param <K> The type of object that will be anonymized
36   *
37   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
38   */
39  public interface Anonymizer<K>
40  {
41      /**
42       * Take an attribute and its value, anonymizing all of them.
43       * 
44       * @param valueMap The existing map of value to the associated anonymized counterpart
45       * @param valueSet The existing set of anonymized counterpart
46       * @param attribute The attribute to anonymize
47       * @return The anonymized attribute
48       */
49      Attribute anonymize( Map<Value<K>, Value<K>> valueMap, Set<Value<K>> valueSet, Attribute attribute );
50      
51      
52      /**
53       * Inject a SchemaManager instance in this Anonymizer
54       *
55       * @param schemaManager The SchemaManager instance
56       */
57      void setSchemaManager( SchemaManager schemaManager );
58      
59      
60      /**
61       * Set the list of existing anonymizers
62       *
63       * @param attributeAnonymizers The list of existing anonymizers
64       */
65      void setAnonymizers( Map<String, Anonymizer<K>> attributeAnonymizers );
66      
67      
68      /**
69       * @return The latest String anonymized value map
70       */
71      Map<Integer, String> getLatestStringMap();
72      
73      
74      /**
75       * @param latestStringMap The latest String anonymized value map
76       */
77      void setLatestStringMap( Map<Integer, String> latestStringMap );
78      
79      
80      /**
81       * @return The latest byte[] anonymized value map
82       */
83      Map<Integer, byte[]> getLatestBytesMap();
84      
85      
86      /**
87       * @param latestBytesMap The latest byte[] anonymized value map
88       */
89      void setLatestBytesMap( Map<Integer, byte[]> latestBytesMap );
90  }