/*
* Copyright 2017 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.roaster;
/**
*
* @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
*/
public class Problem
{
private final String message;
private final int sourceStart;
private final int sourceEnd;
private final int sourceLineNumber;
/**
* @param message
* @param sourceStart
* @param sourceEnd
* @param sourceLineNumber
*/
public Problem(String message, int sourceStart, int sourceEnd, int sourceLineNumber)
{
super();
this.message = message;
this.sourceStart = sourceStart;
this.sourceEnd = sourceEnd;
this.sourceLineNumber = sourceLineNumber;
}
/**
* @return the message
*/
public String getMessage()
{
return message;
}
/**
* @return the sourceStart
*/
public int getSourceStart()
{
return sourceStart;
}
/**
* @return the sourceEnd
*/
public int getSourceEnd()
{
return sourceEnd;
}
/**
* @return the sourceLineNumber
*/
public int getSourceLineNumber()
{
return sourceLineNumber;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((message == null) ? 0 : message.hashCode());
result = prime * result + sourceEnd;
result = prime * result + sourceLineNumber;
result = prime * result + sourceStart;
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Problem other = (Problem) obj;
if (message == null)
{
if (other.message != null)
return false;
}
else if (!message.equals(other.message))
return false;
if (sourceEnd != other.sourceEnd)
return false;
if (sourceLineNumber != other.sourceLineNumber)
return false;
if (sourceStart != other.sourceStart)
return false;
return true;
}
@Override
public String toString()
{
return "Problem [message=" + message + ", sourceStart=" + sourceStart + ", sourceEnd=" + sourceEnd
+ ", sourceLineNumber=" + sourceLineNumber + "]";
}
}