public static void loadForeignKeyProperties()
	{
		Properties foreignKeyProp = new Properties();
		foreignKeyMap = new HashMap<String, Set<ForeignKeyConstraint>>();
		exportedKeysMap = new HashMap<String, Set<String>>();
		try
		{
			int i = 1;
			foreignKeyProp.load(new FileReader("foreignKeyConfig.properties"));
			for (Entry<Object, Object> fkRef : foreignKeyProp.entrySet())
			{
				String[] temp;
				String foreignKeyColumn = String.valueOf(fkRef.getKey()).trim();
				String sourceColumn = String.valueOf(fkRef.getValue()).trim();
				temp = foreignKeyColumn.split("\\.");
				String tableName = temp[0];
				foreignKeyColumn = temp[1].toUpperCase();
				String sourceTableName = (temp = sourceColumn.split("\\."))[0];
				sourceColumn = temp[1].toUpperCase();
				Set<ForeignKeyConstraint> fKeySet;
				if ((fKeySet = foreignKeyMap.get(tableName)) == null)
				{
					fKeySet = new HashSet<ForeignKeyConstraint>();
				}
				if (sourceTableName.equals(tableName))
				{
					fKeySet.add(new SelfForeignKey(FOREIGN_KEY_PREFIX + i, sourceTableName, tableName, foreignKeyColumn, sourceColumn));
				}
				else
				{
					fKeySet.add(new ForeignKeyConstraint(FOREIGN_KEY_PREFIX + i, sourceTableName, tableName, foreignKeyColumn, sourceColumn));
				}
				foreignKeyMap.put(tableName, fKeySet);
				Set<String> eKeySet;
				if ((eKeySet = exportedKeysMap.get(sourceTableName)) == null)
				{
					eKeySet = new HashSet<String>();
				}
				eKeySet.add(sourceColumn);
				exportedKeysMap.put(sourceTableName, eKeySet);

				i++;
			}
		}
		catch (FileNotFoundException e)
		{
			log.info("foreignKeyConfig.properties file not found");
		}
		catch (IOException e)
		{
			log.info("IO Error while reading foreignKeyConfig.properties");
		}
	}