View Javadoc
1   /*
2    * Copyright 2019-2020 the original author or authors.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.bremersee.ldaptive.transcoder;
18  
19  import org.ldaptive.transcode.AbstractStringValueTranscoder;
20  import org.ldaptive.transcode.IntegerValueTranscoder;
21  
22  /**
23   * The user account control value transcoder.
24   *
25   * @author Christian Bremer
26   */
27  public class UserAccountControlValueTranscoder
28      extends AbstractStringValueTranscoder<UserAccountControl> {
29  
30    private final IntegerValueTranscoder intValueTranscoder = new IntegerValueTranscoder();
31  
32    /**
33     * Instantiates a new user account control value transcoder.
34     */
35    public UserAccountControlValueTranscoder() {
36      super();
37    }
38  
39    @Override
40    public UserAccountControl decodeStringValue(String value) {
41      try {
42        return new UserAccountControl(intValueTranscoder.decodeStringValue(value));
43      } catch (RuntimeException re) {
44        return new UserAccountControl();
45      }
46    }
47  
48    @Override
49    public String encodeStringValue(UserAccountControl value) {
50      return intValueTranscoder.encodeStringValue(value.getValue());
51    }
52  
53    @Override
54    public Class<UserAccountControl> getType() {
55      return UserAccountControl.class;
56    }
57  }