private boolean fromAllowedContainer()

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));
	}