/**
*
*/
package org.feature.multi.perspective.model.editor.editors.algorithms;
import java.util.HashSet;
import java.util.Set;
import org.feature.multi.perspective.model.viewmodel.AbstractGroup;
import org.feature.multi.perspective.model.viewmodel.Group;
import org.js.model.feature.Feature;
/**
* @author Tim Winkelmann
*
*/
public class UsedGroup {
private UsedGroup parentGroup;
private AbstractGroup group;
private Set<Feature> features = new HashSet<Feature>();
private boolean consistent = false;
private boolean done = false;
/**
* @param parentGroup
* @param group
* @param features
*/
public UsedGroup(UsedGroup parentGroup,
AbstractGroup group, Set<Feature> features) {
super();
this.parentGroup = parentGroup;
this.group = group;
this.features = features;
}
/**
* @return the parentGroup
*/
public UsedGroup getParentGroup() {
return parentGroup;
}
/**
* @param parentGroup the parentGroup to set
*/
public void setParentGroup(UsedGroup parentGroup) {
this.parentGroup = parentGroup;
}
/**
* @return the group
*/
public AbstractGroup getGroup() {
return group;
}
/**
* @param group the group to set
*/
public void setGroup(AbstractGroup group) {
this.group = group;
}
/**
* @return the done
*/
public boolean isDone() {
return done;
}
/**
* @param done the done to set
*/
public void setDone() {
this.done = true;
}
/**
* @return the consistent
*/
public boolean isConsistent() {
return consistent;
}
/**
* @param consistent the consistent to set
*/
public void setConsistent(boolean consistent) {
this.consistent = consistent;
}
/**
* @return the features
*/
public Set<Feature> getFeatures() {
return features;
}
/**
* @param features the features to set
*/
public void setFeatures(Set<Feature> features) {
this.features = features;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((group == null) ? 0 : group.hashCode());
return result;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UsedGroup other = (UsedGroup) obj;
if (group == null) {
if (other.group != null)
return false;
} else if (!group.equals(other.group))
return false;
return true;
}
}