/* * VResultTemplate.java * * Created on July 28, 2003, 10:43 AM */ package org.jboss.tools.common.verification.vrules; import java.beans.*; /** * * @author valera */ public class VResultTemplate { private String id; private String name; private String description; private String type; private int significance; private VMessageFormat format; private PropertyChangeSupport propertyChangeSupport; /** Creates a new instance of VResultTemplate */ public VResultTemplate() { propertyChangeSupport = new PropertyChangeSupport(this); } /** Returns this template id. * @return Value of property id. * */ public String getId() { return id; } /** Sets this template id. * @param id New value of property id. * */ public void setId(String id) { String old = this.id; this.id = id; propertyChangeSupport.firePropertyChange("id", old, id); //$NON-NLS-1$ } /** Returns this template name. * @return Value of property name. * */ public String getName() { return name; } /** Sets this template name. * @param name New value of property name. * */ public void setName(String name) { String old = this.name; this.name = name; propertyChangeSupport.firePropertyChange("name", old, name); //$NON-NLS-1$ } /** Returns this template description. * @return Value of property description. * */ public String getDescription() { return description; } /** Sets this template description. * @param description New value of property description. * */ public void setDescription(String description) { String old = this.description; this.description = description; propertyChangeSupport.firePropertyChange("description", old, description); //$NON-NLS-1$ } /** Returns this template type. * @return Value of property type. * */ public String getType() { return type; } /** Sets this template type. * @param type New value of property type. * */ public void setType(String type) { String old = this.type; this.type = type; propertyChangeSupport.firePropertyChange("type", old, type); //$NON-NLS-1$ } /** Returns this template significance. * @return Value of property significance. * */ public int getSignificance() { return significance; } /** Sets this template significance. * @param significance New value of property significance. * */ public void setSignificance(int significance) { int old = this.significance; if (significance > 10) { this.significance = 10; } else if (significance < 0) { this.significance = 0; } else { this.significance = significance; } propertyChangeSupport.firePropertyChange("significance", old, significance); //$NON-NLS-1$ } /** Returns this template format. * @return Value of property format. * */ public VMessageFormat getFormat() { return format; } /** Sets this template format. * @param format New value of property format. * */ public void setFormat(VMessageFormat format) { VMessageFormat old = this.format; this.format = format; propertyChangeSupport.firePropertyChange("format", old, format); //$NON-NLS-1$ } /** Creates new VResult object. */ public VResult getResult(VObject sourceObject, Object sourcePosition, VObject targetObject, Object targetPosition, Object[] params) { VResult result = new VResult(); result.setSignificance(this.significance); result.setSourceObject(sourceObject); result.setSourcePosition(sourcePosition); result.setTargetObject(targetObject); result.setTargetPosition(targetPosition); result.setType(this.type); if (format != null) { String message = format.format(params); VMessageFormat parent = format.getParent(); if (parent != null) { Object[] params2 = new Object[] {sourceObject, sourcePosition, targetObject, targetPosition, message, type,Integer.valueOf(significance)}; message = parent.format(params2); } result.setMessage(message); } return result; } public boolean equals(Object o) { if (this == o) return true; if (o instanceof VResultTemplate) { return this.id.equals(((VResultTemplate)o).id); } return false; } public int hashCode() { return id.hashCode(); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.removePropertyChangeListener(listener); } }