package org.erlide.builder;
import com.google.common.base.Objects;
import org.eclipse.xtend.lib.annotations.Data;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import org.eclipse.xtext.xbase.lib.Pure;
import org.eclipse.xtext.xbase.lib.util.ToStringBuilder;
import org.erlide.builder.ILineParser;
@Data
@SuppressWarnings("all")
public class BuilderHandler<T extends Object> {
private final ILineParser<T> lineParser;
private final Procedure1<? super T> callback;
public void eval(final String line) {
final T item = this.lineParser.parseLine(line);
boolean _notEquals = (!Objects.equal(item, null));
if (_notEquals) {
this.callback.apply(item);
}
}
public BuilderHandler(final ILineParser<T> lineParser, final Procedure1<? super T> callback) {
super();
this.lineParser = lineParser;
this.callback = callback;
}
@Override
@Pure
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((this.lineParser== null) ? 0 : this.lineParser.hashCode());
result = prime * result + ((this.callback== null) ? 0 : this.callback.hashCode());
return result;
}
@Override
@Pure
public boolean equals(final Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
BuilderHandler<?> other = (BuilderHandler<?>) obj;
if (this.lineParser == null) {
if (other.lineParser != null)
return false;
} else if (!this.lineParser.equals(other.lineParser))
return false;
if (this.callback == null) {
if (other.callback != null)
return false;
} else if (!this.callback.equals(other.callback))
return false;
return true;
}
@Override
@Pure
public String toString() {
ToStringBuilder b = new ToStringBuilder(this);
b.add("lineParser", this.lineParser);
b.add("callback", this.callback);
return b.toString();
}
@Pure
public ILineParser<T> getLineParser() {
return this.lineParser;
}
@Pure
public Procedure1<? super T> getCallback() {
return this.callback;
}
}