{
throw new MetadataException("err.meta.transformation.bothSourceMapping",
new Object[]{mapping.getName(), transformation.getName()});
}
final TransformationArgument argument = new TransformationArgument(sSourceName);
if (sMapping == null)
{
if (sSource == null)
{
sSource = "";
}
StringTokenizer tokenizer = new StringTokenizer(sSource);
TransformationSource source = transformation.getRoot();
while (tokenizer.hasMoreTokens())
{
String sPartName = tokenizer.nextToken();
boolean bFixed = sPartName.endsWith("$");
if (bFixed)
{
sPartName = sPartName.substring(0, sPartName.length() - 1);
}
source = source.addChild(sPartName);
if (bFixed)
{
mapping.setFixedSource(source, true);
}
}
argument.setSource(source);
}
else
{
m_postInheritanceTransformationFixupList.add(new ContextFixup(getHelper())
{
public void fixup()
{
argument.setMapping(transformation, sMapping);
}
});
}
argument.setNull(XMLUtil.getBooleanAttr(sourceElement, "null", argument.isNull()));
argument.setDefaultValue(m_helper.parse(XMLUtil.getStringAttr(sourceElement, "default"), false,
sCodeURL + '.' + argument.getName(), transformation.getPosMap(), argument.getDefaultValue(),
m_metadata.getGlobalEnvironment()));
mapping.addArgument(argument);
}
protected String getName(Element element)