/*******************************************************************************
* Copyright (c) 2010 SAP AG.
* 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
*
* Contributors:
* Emil Simeonov - initial API and implementation.
* Dimitar Donchev - initial API and implementation.
* Dimitar Tenev - initial API and implementation.
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
package org.eclipse.wst.sse.sieditor.model.validation.impl;
import java.util.Set;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.validation.model.IConstraintStatus;
import org.eclipse.wst.sse.sieditor.model.api.IModelObject;
import org.eclipse.wst.sse.sieditor.model.validation.IValidationStatus;
public class ValidationStatus implements IValidationStatus {
protected final IConstraintStatus constraintStatus;
protected final IModelObject modelObject;
public ValidationStatus(IConstraintStatus constraintStatus, IModelObject modelObject) {
this.constraintStatus = constraintStatus;
this.modelObject = modelObject;
}
public String getMessage() {
return constraintStatus.getMessage();
}
public int getSeverity() {
return constraintStatus.getSeverity();
}
public IModelObject getTarget() {
return modelObject;
}
public boolean isOK() {
return getSeverity() == IStatus.OK;
}
public String getId() {
return constraintStatus.getConstraint().getDescriptor().getId();
}
public EObject getConstraintStatusTarget() {
return constraintStatus.getTarget();
}
public IConstraintStatus getSourceStatus() {
return constraintStatus;
}
public Set<EObject> getResultLocus() {
return constraintStatus.getResultLocus();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((constraintStatus == null) ? 0 : constraintStatusHashCode());
return result;
}
private int constraintStatusHashCode() {
return constraintStatus.getMessage().hashCode() + constraintStatus.getTarget().hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ValidationStatus other = (ValidationStatus) obj;
if (constraintStatus == null) {
if (other.constraintStatus != null)
return false;
} else if (this.hashCode() != other.hashCode()) {
return false;
}
return true;
}
}