/*******************************************************************************
* Copyright (c) Feb 12, 2012 Zend Technologies Ltd.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.zend.webapi.core.connection.data;
import org.zend.webapi.core.connection.data.values.IssueSeverity;
import org.zend.webapi.core.connection.data.values.IssueStatus;
/**
* List of basic issue properties.
*
* @author Wojciech Galanciak, 2012
* @since 1.2
*/
public class Issue extends AbstractResponseData {
private static final String ISSUE = "/issue";
private int id;
private String rule;
private String lastOccurance;
private IssueSeverity severity;
private IssueStatus status;
private GeneralDetails generalDetails;
private RouteDetails routeDetails;
protected Issue() {
super(ResponseType.ISSUE, BASE_PATH + ISSUE, ISSUE);
}
protected Issue(String prefix, int occurrance) {
super(ResponseType.ISSUE, prefix, ISSUE, occurrance);
}
public boolean accept(IResponseDataVisitor visitor) {
boolean visit = visitor.preVisit(this);
if (visit) {
if (this.getGeneralDetails() != null) {
this.getGeneralDetails().accept(visitor);
}
if (this.getRouteDetails() != null) {
this.getRouteDetails().accept(visitor);
}
return visitor.visit(this);
}
return false;
}
/**
* @return Issue identifier
*/
public int getId() {
return id;
}
/**
* @return Issue's rule name
*/
public String getRule() {
return rule;
}
/**
* @return Issue's last time (DD-MMM-YYYY HH:MM) of manifestation
*/
public String getLastOccurance() {
return lastOccurance;
}
/**
* @return Issue's severity
*/
public IssueSeverity getSeverity() {
return severity;
}
/**
* @return Issue's current status
*/
public IssueStatus getStatus() {
return status;
}
/**
* @return Route details for the issue and the request that created it
*/
public RouteDetails getRouteDetails() {
return routeDetails;
}
/**
* @return general details
*/
public GeneralDetails getGeneralDetails() {
return generalDetails;
}
protected void setId(int id) {
this.id = id;
}
protected void setRule(String rule) {
this.rule = rule;
}
protected void setLastOccurance(String lastOccurance) {
this.lastOccurance = lastOccurance;
}
protected void setSeverity(IssueSeverity severity) {
this.severity = severity;
}
protected void setStatus(IssueStatus status) {
this.status = status;
}
protected void setGeneralDetails(GeneralDetails generalDetails) {
this.generalDetails = generalDetails;
}
protected void setRouteDetails(RouteDetails routeDetails) {
this.routeDetails = routeDetails;
}
}