MemberName memberName;
try {
memberName = MemberName.getMemberNameFor(component);
} catch (IllegalArgumentException e) {
throw new XDIMEException("Undefined " + getMemberType().getName() + " reference: " + referenceString);
}
memberNames.add(memberName);
lastMemberName = memberName;
}
// Store the position of last minus sign for next loop iteration.
lastMinusIndex = minusIndex;
} while (lastMinusIndex != -1);
// Throw an exception, if reference is invalid.
if (widgetId == null || memberNames == null) {
throw new XDIMEException("Illegal " + getMemberType().getName() + " reference: " + referenceString);
}
// Check, that last member name is of correct type.
if (lastMemberName.getMemberType() != getMemberType()) {
throw new XDIMEException("Expected " + getMemberType().getName() +
", found " + lastMemberName.getMemberType().getName() +
": " + referenceString);
}
// After widget ID and member names are parsed, initalize