mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

matthew_swift
03.04.2009 39db72786ec179e67e3c1c0c71a2e93672999ea5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package org.opends.sdk.controls;
 
 
 
import static com.sun.opends.sdk.util.Messages.ERR_PWEXPIRED_CONTROL_INVALID_VALUE;
 
import com.sun.opends.sdk.util.Message;
import org.opends.sdk.DecodeException;
import org.opends.sdk.schema.Schema;
import org.opends.sdk.util.ByteString;
 
 
 
/**
 * This class implements the Netscape password expired control. The
 * value for this control should be a string that indicates the length
 * of time until the password expires, but because it is already expired
 * it will always be "0".
 */
public class PasswordExpiredControl extends Control
{
  /**
   * The OID for the Netscape password expired control.
   */
  public static final String OID_NS_PASSWORD_EXPIRED = "2.16.840.1.113730.3.4.4";
 
 
 
  /**
   * ControlDecoder implentation to decode this control from a
   * ByteString.
   */
  private final static class Decoder implements
      ControlDecoder<PasswordExpiredControl>
  {
    /**
     * {@inheritDoc}
     */
    public PasswordExpiredControl decode(boolean isCritical,
        ByteString value, Schema schema) throws DecodeException
    {
      if (value != null)
      {
        try
        {
          Integer.parseInt(value.toString());
        }
        catch (Exception e)
        {
          Message message = ERR_PWEXPIRED_CONTROL_INVALID_VALUE.get();
          throw DecodeException.error(message);
        }
      }
 
      return new PasswordExpiredControl(isCritical);
    }
 
 
 
    public String getOID()
    {
      return OID_NS_PASSWORD_EXPIRED;
    }
 
  }
 
 
 
  private final static ByteString CONTROL_VALUE = ByteString
      .valueOf("0");
 
  /**
   * The Control Decoder that can be used to decode this control.
   */
  public static final ControlDecoder<PasswordExpiredControl> DECODER = new Decoder();
 
 
 
  /**
   * Creates a new instance of the password expired control with the
   * default settings.
   */
  public PasswordExpiredControl()
  {
    this(false);
  }
 
 
 
  /**
   * Creates a new instance of the password expired control with the
   * provided information.
   * 
   * @param isCritical
   *          Indicates whether support for this control should be
   *          considered a critical part of the client processing.
   */
  public PasswordExpiredControl(boolean isCritical)
  {
    super(OID_NS_PASSWORD_EXPIRED, isCritical);
  }
 
 
 
  @Override
  public ByteString getValue()
  {
    return CONTROL_VALUE;
  }
 
 
 
  @Override
  public boolean hasValue()
  {
    return true;
  }
 
 
 
  /**
   * Appends a string representation of this password expired control to
   * the provided buffer.
   * 
   * @param buffer
   *          The buffer to which the information should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("PasswordExpiredControl(oid=");
    buffer.append(getOID());
    buffer.append(", criticality=");
    buffer.append(isCritical());
    buffer.append(")");
  }
}