public void synchAttributes(Subject apiSubject)
protected void synchAttributes(Subject apiSubject)
	public void synchAttributes(Subject apiSubject)	{		if (null == signetSource) // can't continue without a Source			return;		// Get the "attributes of interest" for our Source and the attribute's value		Map apiAttrs = apiSubject.getAttributes(); // attributes from the original Subject (a Map of Name/Set pairs)		Hashtable sourceAttrMap = signetSource.getMappedAttributes(); // mapped attribute names from SubjectSources.xml		// the mappedAttribute is the key; the sourceAttribute is the value		for (Enumeration sigAttrNames = sourceAttrMap.keys(); sigAttrNames.hasMoreElements();)		{			// get the signet attribute name			String sigAttrName = (String)sigAttrNames.nextElement();			// get the mapped attribute name			String apiAttrName = (String)sourceAttrMap.get(sigAttrName);			// get the values of the subjectApi attribute (a Set of String objects)			Set apiAttrValues = (Set)apiAttrs.get(apiAttrName);			// if the SignetSubjectAttr exists update it, otherwise create it			SignetSubjectAttr sigAttr = getAttribute(sigAttrName);			if (null == sigAttr)			{				sigAttr = new SignetSubjectAttr(sigAttrName);				addAttribute(sigAttr);			}			sigAttr.setSourceValues(apiAttrValues); // replace the existing attr values		}	}