package org.jbehave.eclipse.preferences;
import org.codehaus.plexus.util.StringUtils;
import ch.qos.logback.classic.Level;
import fj.F;
public final class LoggerEntry {
public static LoggerEntry newEntry(String loggerName, String levelAsString) {
return new LoggerEntry(loggerName, Level.valueOf(levelAsString));
}
private final String loggerName;
private final Level level;
public LoggerEntry(String loggerName, Level level) {
super();
this.loggerName = loggerName;
this.level = level;
}
/**
* @return the loggerName
*/
public String getLoggerName() {
return loggerName;
}
/**
* @return the level
*/
public Level getLevel() {
return level;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((level == null) ? 0 : level.toInt());
result = prime * result + ((loggerName == null) ? 0 : loggerName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
LoggerEntry other = (LoggerEntry) obj;
if (level == null) {
if (other.level != null)
return false;
} else if (level.toInt()!=other.level.toInt())
return false;
if (loggerName == null) {
if (other.loggerName != null)
return false;
} else if (!loggerName.equals(other.loggerName))
return false;
return true;
}
public F<LoggerEntry, Boolean> sameNameF() {
return new F<LoggerEntry, Boolean>() {
@Override
public Boolean f(LoggerEntry entry) {
return StringUtils.equals(loggerName, entry.getLoggerName());
}
};
}
}