in src/main/java/com/atlassian/uwc/exporters/JiveExporter.java [395:455]
private boolean fromAllowedContainer(long objContainerId, int objContainerType) throws SQLException {
if (!this.running) return false;
HashMap<String, Container> containers = getContainers();
//setup containers the first time
if (this.containerSqls == null) {
this.containerSqls = new HashMap<String, String>();
for (String sqlkey : this.sqlStatements.keySet()) {
if (sqlkey.startsWith("sql.container."))
containerSqls.put(sqlkey, this.sqlStatements.get(sqlkey));
}
if (this.containerSqls.isEmpty()) {
log.info("No sql.container.X statements. Cannot export container data.");
}
//get the allowed containers
for (String sqlkey : this.containerSqls.keySet()) {
if (sqlkey.startsWith("sql.container.filter.")) {
String sql = this.containerSqls.get(sqlkey);
ResultSet containerResults = sql(sql);
while (containerResults.next()) {
long id = containerResults.getLong(1);
int containertype = Integer.parseInt(sqlkey.replaceAll("^sql.container.filter.", ""));
String containername = null;
String description = null;
String nameSql = this.containerSqls.get("sql.container.name."+containertype);
nameSql = nameSql.replaceAll("\\?", "'"+id + "'");
ResultSet nameResults = sql(nameSql);
while (nameResults.next()) {
containername = nameResults.getString("name");
description = nameResults.getString("description");
}
String typename = null;
String typenameSql = this.containerSqls.get("sql.container.typename");
typenameSql = typenameSql.replaceAll("\\?", "'"+containertype + "'");
ResultSet typeResults = sql(typenameSql);
while (typeResults.next()) {
typename = typeResults.getString("code");
}
long parentid = -1;
int parenttype = -1;
String parentSql = this.containerSqls.get("sql.container.parent."+containertype);
parentSql = parentSql.replaceAll("\\?", "'"+id + "'");
ResultSet parentResults = sql(parentSql);
while (parentResults.next()) {
parentid = parentResults.getLong("id");
parenttype = parentResults.getInt("objtype");
break;
}
Container container = new Container(id, containertype,
containername, description,
typename, parentid, parenttype);
this.containers.put(getUniqueContainerId(id, containertype), container);
assignHierarchyRelationships(getUniqueContainerId(parentid, parenttype), getUniqueContainerId(id, containertype));
}
}
}
}
if (this.containers.isEmpty()) return true; //allow all objects regardless of container
//check to see if the passed container data matches any of the allowed containers
return this.containers.containsKey(getUniqueContainerId(objContainerId, objContainerType));
}