
com.github.kaitoy.sneo.agent.FileMibLoader Maven / Gradle / Ivy
/*_##########################################################################
_##
_## Copyright (C) 2011-2012 Kaito Yamada
_##
_##########################################################################
*/
package com.github.kaitoy.sneo.agent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.VariableBinding;
import com.github.kaitoy.sneo.util.SneoVariableTextFormat;
final class FileMibLoader {
private static final LogAdapter logger
= LogFactory.getLogger(FileMibLoader.class.getPackage().getName());
private final SneoVariableTextFormat format;
public FileMibLoader(SneoVariableTextFormat format) {
if (format == null) {
throw new NullPointerException("format");
}
this.format = format;
}
public SneoVariableTextFormat getFormat() {
return format;
}
public
List load(String fileMibPath, OID root)
throws FileNotFoundException, IOException {
synchronized (format) {
FileReader fileMibReader = null;
BufferedReader fileMibBufferedReader = null;
try {
File fileMib = new File(fileMibPath);
fileMibReader = new FileReader(fileMib);
fileMibBufferedReader = new BufferedReader(fileMibReader);
String line;
List vbs = new ArrayList();
format.init();
while ((line = fileMibBufferedReader.readLine()) != null) {
try {
VariableBinding vb = format.parseVariableBinding(line);
if (vb == null) {
logger.info("No effective value. Ignore the line: " + line);
continue;
}
if (vb.getOid().startsWith(root)) {
vbs.add(vb);
}
} catch (ParseException e) {
logger.warn("ParseException occured. Ignore the line: " + line);
}
}
return vbs;
} finally {
if (fileMibBufferedReader != null) {
fileMibBufferedReader.close();
}
if (fileMibReader != null) {
fileMibReader.close();
}
}
}
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(this.getClass().getName())
.append("(")
.append(format.getClass().getName())
.append(")");
return sb.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy