return;
}
for (Iterator itr = container.getMessageParts().iterator(); itr.hasNext();) {
MessagePartInfo part = (MessagePartInfo)itr.next();
AegisType type = getParameterType(s, serviceTM, part, partType);
if (part.getXmlSchema() == null) {
// schema hasn't been filled in yet
if (type.isAbstract()) {
part.setTypeQName(type.getSchemaType());
} else {
part.setElementQName(type.getSchemaType());
}
}
Annotation[] anns = part.getProperty("parameter.annotations", Annotation[].class);
long miValue = -1;
if (type.hasMinOccurs()) {
miValue = type.getMinOccurs();
}
Integer i = AnnotationReader.getMinOccurs(anns);
if (i != null) {
miValue = i;
}
if (miValue > 0) {
part.setProperty("minOccurs", Long.toString(miValue));
}
// The concept of type.isNillable is questionable: how are types nillable?
// However, this if at least allow .aegis.xml files to get control.
if (part.getProperty("nillable") == null) {
boolean isNil = type.isNillable();
Boolean b = AnnotationReader.isNillable(anns);
if (b != null || (miValue != 0 && isNil)) {
part.setProperty("nillable", b == null ? isNil : b);
}
/*
if (miValue == -1 && (b == null ? isNil : b)) {
part.setProperty("minOccurs", "1");
}
*/
}
if (type.hasMaxOccurs()) {
String moValue;
long mo = type.getMaxOccurs();
if (mo != Long.MAX_VALUE) {
moValue = Long.toString(mo);
part.setProperty("maxOccurs", moValue);
}
}