public TableEntry(Table table, SnmpBackend backend, MibBackend mibBackend) {
		this.table = table;
		OID oid = table.getOid();
		String label = table.getLabel();
		if (oid == null) {
			if (label == null) {
				throw new IllegalArgumentException(
						"OID or Label cannot be null");
			}
			oid = new OID(mibBackend.getOid(label));
			this.root = oid;
		}

		String name = table.getFile();
		if (name == null) {
			name = label;
			if (name == null) {
				name = mibBackend.getCloserName(oid.toString());
			}
		}
		setName(name + ".csv");

		for (Entry col : table.getCols()) {
			oid = col.getOid();
			if (oid == null) {
				if (label == null) {
					throw new IllegalArgumentException(
							"OID or Label cannot be null");
				}
				oid = new OID(mibBackend.getOid(label));
			}
			cols.add(oid);
		}
		if (cols.isEmpty()) {
			for (String o : mibBackend.getColumns(oid.toString())) {
				cols.add(new OID(o));
			}
		}
		this.backend = backend;
		this.mibBackend = mibBackend;
	}