package org.apache.helix.model;

import org.apache.helix.ZNRecord;

public class MaintenanceSignal extends PauseSignal {
  public MaintenanceSignal(String id) {
    super(id);
  }

  public MaintenanceSignal(ZNRecord record) {
    super(record);
  }
}

@@ -30,218 +30,2356 @@
 l;%0A%0A
-import org.apache.helix.ZNRecord;%0A%0Apublic class MaintenanceSignal extends PauseSignal %7B%0A  public MaintenanceSignal(String id) %7B%0A    super(id);%0A  %7D%0A%0A  public MaintenanceSignal(ZNRecord record) %7B%0A    super(record
+/*%0A * Licensed to the Apache Software Foundation (ASF) under one%0A * or more contributor license agreements.  See the NOTICE file%0A * distributed with this work for additional information%0A * regarding copyright ownership.  The ASF licenses this file%0A * to you under the Apache License, Version 2.0 (the%0A * %22License%22); you may not use this file except in compliance%0A * with the License.  You may obtain a copy of the License at%0A *%0A *   http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing,%0A * software distributed under the License is distributed on an%0A * %22AS IS%22 BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY%0A * KIND, either express or implied.  See the License for the%0A * specific language governing permissions and limitations%0A * under the License.%0A */%0A%0Aimport org.apache.helix.ZNRecord;%0A%0A/**%0A * A ZNode that signals that the cluster is in maintenance mode.%0A */%0Apublic class MaintenanceSignal extends PauseSignal %7B%0A%0A  /**%0A   * Pre-defined fields set by Helix Controller only.%0A   */%0A  private enum MaintenanceSignalProperty %7B%0A    TRIGGERED_BY,%0A    TIMESTAMP%0A  %7D%0A%0A  /**%0A   * Possible values for TRIGGERED_BY field in MaintenanceSignal.%0A   */%0A  public enum TriggeringEntity %7B%0A    CONTROLLER,%0A    USER, // manually triggered by user%0A    UNKNOWN%0A  %7D%0A%0A  public MaintenanceSignal(String id) %7B%0A    super(id);%0A  %7D%0A%0A  public MaintenanceSignal(ZNRecord record) %7B%0A    super(record);%0A  %7D%0A%0A  public void setTriggeringEntity(String triggeringEntity) %7B%0A    _record.setSimpleField(MaintenanceSignalProperty.TRIGGERED_BY.name(), triggeringEntity);%0A  %7D%0A%0A  /**%0A   * Returns triggering entity.%0A   * @return TriggeringEntity.UNKNOWN if the field does not exist.%0A   */%0A  public TriggeringEntity getTriggeringEntity() %7B%0A    try %7B%0A      return TriggeringEntity%0A          .valueOf(_record.getSimpleField(MaintenanceSignalProperty.TRIGGERED_BY.name()));%0A    %7D catch (Exception e) %7B%0A      return TriggeringEntity.UNKNOWN;%0A    %7D%0A  %7D%0A%0A  public void setTimestamp(long timestamp) %7B%0A    _record.setLongField(MaintenanceSignalProperty.TIMESTAMP.name(), timestamp);%0A  %7D%0A%0A  /**%0A   * Returns last modified time.%0A   * TODO: Consider using modifiedTime in ZK Stat object.%0A   * @return -1 if the field does not exist.%0A   */%0A  public long getTimestamp() %7B%0A    return _record.getLongField(MaintenanceSignalProperty.TIMESTAMP.name(), -1
 );%0A 

Add fields to MaintenanceSignal