/** * */ package com.xored.glance.internal.ui.sources; import com.xored.glance.ui.sources.ITextSource; import com.xored.glance.ui.sources.ITextSourceDescriptor; import org.eclipse.swt.widgets.Control; /** * @author Yuri Strot */ public class TextSourceMaker { private ITextSourceDescriptor description; private Control control; public TextSourceMaker(ITextSourceDescriptor description, Control control) { this.description = description; this.control = control; } public ITextSource create() { return description == null ? null : description.createSource(control); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } TextSourceMaker other = (TextSourceMaker) obj; if (control == null) { if (other.control != null) { return false; } } else if (!control.equals(other.control)) { return false; } if (description == null) { if (other.description != null) { return false; } } else if (!description.equals(other.description)) { return false; } return true; } /** * @return the control */ public Control getControl() { return control; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((control == null) ? 0 : control.hashCode()); result = prime * result + ((description == null) ? 0 : description.hashCode()); return result; } public boolean isValid() { return description == null ? false : description.isValid(control); } }