blob: 6923ab5c29728a7eba15889c2553f53958079f15 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.jstorm.cluster;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import com.alibaba.jstorm.daemon.nimbus.StatusType;
/**
* Topology stored in ZK
*/
public class StormBase implements Serializable {
private static final long serialVersionUID = -3013095336395395213L;
private String stormName;
private int lanchTimeSecs;
private StormStatus status;
private boolean enableMonitor = true;
private String group;
public StormBase(String stormName, int lanchTimeSecs, StormStatus status, String group) {
this.stormName = stormName;
this.lanchTimeSecs = lanchTimeSecs;
this.status = status;
this.setGroup(group);
}
public String getStormName() {
return stormName;
}
public void setStormName(String stormName) {
this.stormName = stormName;
}
public int getLanchTimeSecs() {
return lanchTimeSecs;
}
public void setLanchTimeSecs(int lanchTimeSecs) {
this.lanchTimeSecs = lanchTimeSecs;
}
public StormStatus getStatus() {
return status;
}
public void setStatus(StormStatus status) {
this.status = status;
}
public String getStatusString() {
StatusType t = status.getStatusType();
return t.getStatus().toUpperCase();
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public boolean isEnableMonitor() {
return enableMonitor;
}
public void setEnableMonitor(boolean enableMonitor) {
this.enableMonitor = enableMonitor;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (enableMonitor ? 1231 : 1237);
result = prime * result + ((group == null) ? 0 : group.hashCode());
result = prime * result + lanchTimeSecs;
result = prime * result + ((status == null) ? 0 : status.hashCode());
result = prime * result + ((stormName == null) ? 0 : stormName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
StormBase other = (StormBase) obj;
if (enableMonitor != other.enableMonitor)
return false;
if (group == null) {
if (other.group != null)
return false;
} else if (!group.equals(other.group))
return false;
if (lanchTimeSecs != other.lanchTimeSecs)
return false;
if (status == null) {
if (other.status != null)
return false;
} else if (!status.equals(other.status))
return false;
if (stormName == null) {
if (other.stormName != null)
return false;
} else if (!stormName.equals(other.stormName))
return false;
return true;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
}