/*
* VRuleImpl.java
*
* Created on July 14, 2003, 10:51 AM
*/
package org.jboss.tools.common.verification.vrules.impl;
import java.util.*;
import org.jboss.tools.common.verification.vrules.*;
import java.beans.*;
/**
*
* @author valera
*/
public class VRuleImpl implements VRule {
protected String category;
protected String description;
protected VEntity[] entities;
protected String name;
protected VResult[] results;
protected boolean enabled;
protected boolean defaultEnabled = true;
protected VAction action;
protected VRuleSet ruleSet;
protected int significance;
protected VResultFactory resultFactory;
protected PropertyChangeSupport propertyChangeSupport;
protected Properties properties = null;
/** Creates a new instance of VRuleImpl */
public VRuleImpl() {
resultFactory = new VResultFactoryImpl();
propertyChangeSupport = new PropertyChangeSupport(this);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public VEntity[] getEntities() {
return entities;
}
public void setEntities(VEntity[] entities) {
this.entities = entities;
}
public VResult[] getResults() {
return results;
}
public void setResults(VResult[] results) {
this.results = results;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
boolean oldEnabled = this.enabled;
this.enabled = enabled;
propertyChangeSupport.firePropertyChange("enabled", oldEnabled, enabled); //$NON-NLS-1$
}
public void setDefaultEnabled(boolean b) {
defaultEnabled = b;
}
public boolean isDefaultEnabled() {
return defaultEnabled;
}
public VAction getAction() {
return action;
}
public void setAction(VAction action) {
this.action = action;
if (action != null) this.action.setRule(this);
}
public VRuleSet getRuleSet() {
return ruleSet;
}
public void setRuleSet(VRuleSet ruleSet) {
this.ruleSet = ruleSet;
}
public int getSignificance() {
return significance;
}
public void setSignificance(int significance) {
if (significance > 10) {
this.significance = 10;
} else if (significance < 0) {
this.significance = 0;
} else {
this.significance = significance;
}
}
public VResultFactory getResultFactory() {
return resultFactory;
}
public String getProperty(String name) {
return (properties == null) ? null : properties.getProperty(name);
}
public void setProperties(Properties properties) {
this.properties = properties;
}
/*public VResult[] recheck() {
VResult[] objs = getResults();
List res = new ArrayList(objs.length);
Set checked = new HashSet();
for (int i = 0; i < objs.length; i++) {
VObject source = objs[i].getSourceObject();
if (checked.contains(source)) continue;
checked.add(source);
res.addAll(Arrays.asList(action.check(source)));
}
return (VResult[])res.toArray(new VResult[res.size()]);
}*/
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
}